XML

XMLゼミ
2.3 XMLのプロローグ
2.4 XMLのタグ
高橋 辰裕
XML宣言
XML宣言
<?xml version=“1.0” encoding=“UTF-16” ?>
• パラメーター : 一般的に、version、encoding、standaloneという3種類の
パラメータを記述することができる
注 仕様上、XML宣言は処理命令に含まれない
処理命令
処理命令
<?処理命令のターゲット 処理のパラメータ ?>
処理命令を使ったXMLの例
<?xml version=“1.0” encoding=“UTF”-16 ?>
<!-- process.xml -->
<!-- 処理命令の例 -->
<!-- 以下は通常は実装されていない命令なので無視される -- >
<?printsys header=“filename filedatetime” ?>
<?dogprocessor msg=“hello dogs” ?>
<hello>
<段落>こんにちは</段落>
</hello>
CDATAセクション
CDATAセクション
<![CDATA[文字列] ]>
CDATAセクションの使用例
<?xml version=“1.0” encoding=“UTF”-16 ?>
<!– cdata.xml -->
<ページ>
<![CDATA[ この文字列は<ページ>タグの文字列要素として認識される ] ]>
<段落>こんにちは</段落>
</ページ>
タグ
タグの形式
<タグ名 属性リスト >要素の内容</タグ名>
<タグ名1 属性リスト>テキスト要素
<タグ名2>ほかの要素内容
イ <タグ2の子タグ>
ン
<タグ2の子の子1>子タグテキスト</タグ2の子の子1>
デ
<タグ2の子の子2>子タグテキスト</タグ2の子の子2>
ン
ト </タグ2の子タグ>
</タグ名2>
</タグ名1>
タグの入れ子
注 インデント時の空白の量は通常、2、3、4、8個
要素
種類
意味
他の要素(element)
ほかのタグ付き要素
キャラクタデータ
(CharData)
文字列データ(テキスト)
参照(Reference)
&と;で囲まれたすでに定義されている文字や文字
列などの参照
CDATAセクション(CDSect) <![CDATA[“で始まり、”]]>で終わる文字列
処理命令(PI)
<?で始まる処理命令
コメント(Comment)
コメント
• ルート要素以外の要素は、すべてルート要素の内容でなければならな
い。ルート要素はかならず1個なければならず、2個以上あってはならな
い
• ある要素の子要素は、その要素の中になければならない。ある要素がほ
属性
属性の記述形式
<タグ名 属性名1=“属性値1” 属性名2=“属性値2” ・・・ > テキスト</タグ名>
<メンバー CODE=“2525” SEX=“F”>二戸 丹子</メンバー>
• XML1.0では、XML:spaceとXML:langという2種類の特別な属性があら
かじめ定義されている
XML:space : 空白と改行の扱い方を指定するための属性
default → 空白と改行の扱い方はプログラムに任せる(通常は無視)
preserve → 空白と改行を無視したり削除せずにそのまま保存
XML:lang : XML文書の中で使われている言語を指定するための属性
参照
• すでに定義されている文字や文字列などを、&と;で囲まれた文字列を
使って参照する
参照を使ったXML文書の例
<?xml version=“1.0” encoding=“UTF”-16 ?>
<!-- refs.xml -->
<!DOCTYPE ページ[
<!ENTITY TITLE “独習XML”>
]>
<ページ>
<表題>&TITLE;</表題>
<段落>表題を&TITLE;で参照することができます。</段落>
<段落>&#38;は&amp;で参照することができます。</段落>
</ページ>
課題
• タグの入れ子と先に述べた要素の種類6つを
それぞれ用いたXML文書の例を作成せよ