ラボ講座‎ > ‎

XML講座

ここでは、XMLに関する情報を記述していきます。

XMLとは
XMLはマークアップランゲージ(Markup Language)の一種である。マークアップランゲージは、文字列をタグ(tag)で囲み構造的に記述することにより文書をさまざまなコンピュータ処理を対象となるように開発されたものである。

XMLの文法
XMLには「要素」と「属性」が存在する。

要素
<name>知能情報ソフトウエア研究室</name>

要素に別の要素をネストさせた例
<labo> 
 <name>知能情報ソフトウエア研究室</name> 
</labo> 

空要素の記述例
要素にはコンテンツを持たない空要素もある。

<labo></labo>

 または
<labo/>

と書く。

属性(attribute)

属性は要素に対して付加的な情報を加えるために使用される。属性は要素の開始タグまたは空要素のタグに記述される。

name属性にyomi属性を記述した例

<name yomi="オチラボ">ochilab</name>


XMLパーサー

XMLはテキストファイルであるため、XMLファイルの作成・読み込みは通常のテキスト処理と同様にできる。しかし、一般的にはそんな馬鹿な事はせず、XMLパーサーと呼ばれる解析ツールを用いて作成や読み込みを行う。XMLパーサーを利用することで、XMLの構造に着目したデータ処理をすることができる。XMLパーサーには、の2種類が一般的に使われており、代表的な言語にはもれなくライブラリが用意されている。
  • DOM
    XMLファイルを書き出す場合や、XMLデータを変更する(例えば別なXMLに変換したり、要素を修正したり)、XMLデータを何度も走査する(検索したりするとき)際に利用される。

  • SAX
     XMLファイルは読み込み専門で書き出すことはない。XMLファイルのサイズが非常に大きい場合や、 XMLファイルの中のごく一部のデータを使う際に利用される。
XML文書が文法に照らして正確に記述されているかどうかを同時に検証できる。使い方は言語により異なるのでここでは割愛する。

代表的なXML関連のライブラリは、
  • IBM XML Parser for Java
  • Xerces
  •  OpenXML
  • Oracle XML Parser for Java
  • JAXPJava API for XML Processing)・・・ Java標準


XPath
XMLのツリー構造に着目して任意の要素のデータを指定する方法として、XPathがある。

 構文 意味
 /ルートノード 
 nodeコンテキストノードの子要素nodeを選択 
 *コンテキストノードの全ての子要素
@att コンテキストノードのatt属性 
@*コンテキストノードの全ての属性 
 node[1]コンテキストノードの子要素nodeの中の1番目の要素 
 node[last()]コンテキストノードの子要素nodeの中の最後の要素 
 //node文書内の全ての子要素node
 node[@att] コンテキストノードの子要素nodeのうちatt属性を持つ要素 
 node[@att="abc"]コンテキストノードの子要素nodeのうちatt属性が"abc"を持つ要素 
 .コンテキストノード 
 ..コンテキストノードの親 











Comments