SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Java開発者のためのYAML入門:XMLやJSONとの違い

YAMLファイル形式の概要

  • このエントリーをはてなブックマークに追加

Java開発者のために、YAMLファイル形式の概要についてまとめました。XMLやJSONとの違いを知り、その利点と弱点を押さえておきましょう。

  • このエントリーをはてなブックマークに追加

はじめに

 Ruby、Groovy、Pythonといった動的言語や、Ruby on Railsなどの関連フレームワークの話題が花ざかりの昨今ですが、この記事をお読みくださっているJava開発者の中には、普段の仕事では純粋なJavaしか使わず、今後も当分はその状況が続くという方も多いことでしょう。しかしそれでも、目新しい知識や技術を身に付けたり、自らの開発に役立てたりということは可能なはずです。

 この記事では、YAMLというファイル形式について紹介します。YAMLとは「YAML Ain't Markup Language」の略で、Ruby on Railsフレームワークの設定ファイルに採用されたことで広く知られるようになりました。ここでは、YAMLの概要と、XMLやJSONとの違いについて見ていき、その利点と弱点を探っていきます。

スペースによるインデントとJSON風表記

 YAMLでは、スペースによるインデントを使ってデータの階層構造を示す表記方法が基本です。XMLのようなタグのネストや、JSONのような中かっこ({})と角かっこ([])による表記ではありません。ただしYAMLは、JSONのスーパーセットでもあります。そのため、必要に応じて、スペースによるインデント表記からJSON風の表記へと切り替えることも可能です。YAMLの発案者たちはYAMLのことを、「すべてのプログラミング言語のための、人に優しいデータシリアライゼーション方式の標準」だと言っています。私の経験では、「人に優しい」ことを重視した点が、YAMLならではの大きな特徴です。

 スペースによるインデントを用いた、純粋なYAMLの例を見てみましょう。YAMLファイルを作成するときには、スペースの幅が重大な意味を持つので、固定幅のフォントを使うことが大事です(補足説明「YAMLとタブ」を参照)。

JFrame:
    defaultCloseOperation: JFrame.EXIT_ON_CLOSE
    title: Test Frame
    width: 800
    height: 400
    components:
        - JTextArea:
             name: textArea1
             text: |
               This is a really long text
               that spans multiple lines (but preserves new lines).
               It does not need to be escaped with special brackets,
               CDATA tags, or anything like that
        - JButton:
             name: button2
             text: Button 2

 次の例のように、必要に応じて途中からJSON風の表記に切り替え、インデントによる表記と混在させることも可能です。

JFrame:
    defaultCloseOperation: JFrame.EXIT_ON_CLOSE
    title: Test Frame    width: 800
    height: 400
    components:
        - JTextArea:
             name: textArea1
             text: |
               This is a really long text
               that spans multiple lines (but preserves new lines).
               It does not need to be escaped with special brackets,
               CDATA tags, or anything like that
        - JButton: {name: button2, text: Button 2} #JSON syntax

 JSON風の表記への切り替えは、最下位レベルのノード(子供がないノード)で行うのが特に好都合です。また、上の例にもあるように、シャープ記号(#)を使うことで、YAMLファイルの中にコメントを記述できます。

YAMLとタブ

 スペースのインデントを用いたファイル形式でよく見られるのが、タブがどのように解釈されるかという問題です。YAMLの場合、答えは簡単で、ファイル内でタブは一切サポートされていません。スペースの代わりにタブを用いてインデントすると、処理時に例外が発生します。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
YAMLのファイル構造の構成要素

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Jacek Furmankiewicz(Jacek Furmankiewicz)

Compuware Corporation of Canadaの上級開発者/設計者。UNIX、PowerBuilder、C#/Microsoft .NET、Java、PHP、Microsoft SQL Server、OracleなどでITの専門家として12年の経験がある。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2972 2008/09/15 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング