このページで
XML の概要
Extensible Markup Language (XML)は、 タグと呼ばれる一連のマーカーを定義する言語で、データ セットやドキュメントに適用され、個々の要素の機能を記述し、それらの階層リレーションシップをコード化します。XML タグはハイパーテキスト マークアップ言語(HTML)タグとよく似ていますが、XML は実際には、マークされるデータの種類に最も適したタグを定義するために使用されるメタ言語です。
XML の詳細については、http://www.xml.com/pub/a/98/10/guide0.html の XML の技術概要 と 、http://www.xml.com サイトの その他の参照資料を参照してください。World Wide Web Consortium(W3C)の『 Extensible Markup Language(XML)1.0』の公式 XML 仕様は、 http://www.w3.org/TR/REC-xml で利用可能です。
以下のセクションでは、XML の一般的な側面について説明します。
タグ要素
XML には、タグを開くタグ、閉じるタグ、空のタグという 3 種類のタグがあります。XML タグ名は山括弧で囲まれており、大文字と小文字が区別されます。XML 準拠のドキュメントまたはデータ セット内のアイテムは、常にペアの開始タグと終了タグで囲まれており、タグを正しくネストする必要があります。つまり、タグを開いたのと同じ順序でタグを閉じる必要があります。XMLは、HTMLよりもこの点で厳しく、時にはタグを開くだけ使用します。次の例は、値を囲む開始タグと終了タグのペアを示しています。終了タグは、タグ名の先頭にあるフォワードスラッシュで示されます。
<interface-state>enabled</interface-state> <input-bytes>25378</input-bytes>
用語 tag 要素 は、タグの開始、コンテンツ、および終了タグという 3 部構成のセットを指します。コンテンツは、前述の例のように英数字の文字列を使用することも、それ自体を コンテナ タグ要素にして、他のタグ要素を含めることもできます。簡潔にするために、タグという用語は 、多 くの場合、 タグの要素 または 要素と同じ意味で使用されます。
タグ要素が 空で、コンテンツがない場合は、その間に何も持たない開始タグと終了タグのペア、またはタグ名の後にスラッシュを持つ単一のタグとして表すことができます。例えば、表記 <snmp-trap-flag/>
は に相当します <snmp-trap-flag></snmp-trap-flag>
。
前述の例に示すように、山括弧はタグ要素の名前を囲みます。これは XML 表記規則であり、角括弧は完全なタグ要素名の必須部分です。Junos OS CLI コマンド文字列のオプション部分を示すために、ジュニパーネットワークスのマニュアルで使用されている山括弧と混乱することはありません。
Junos XML タグ要素は、タグ要素名がタグで囲まれた情報の種類を示す XML 規則に従っています。たとえば、Junos XML <interface-state>
タグ要素の名前は、デバイス上のインターフェイスの現在のステータスの説明が含まれていることを示します。タグ要素の<input-bytes>
名前は、その内容で受信バイト数を指定していることを示します。
テキストでタグ要素について説明する場合、このドキュメントでは従来、タグの完全な要素(タグ、コンテンツ、終了タグ)を表すために開始タグのみを使用します。たとえば、ドキュメントはタグを参照して、 <input-bytes>
タグ要素全体 <input-bytes>number-of-bytes</input-bytes>
を示します。
属性
XML 要素には、属性の形式で関連付けられたプロパティ を含めることができます。属性には、要素に関する追加情報を指定します。属性は、要素の開始タグに表示され、属性名と値のペアで構成されます。属性構文は、属性名の後に等しい符号、引用符で囲まれた属性値で構成されています。XML 要素は、複数の属性を持つことができます。複数の属性はスペースで区切られているため、任意の順序で表示できます。
次の例では、 configuration
要素には、2 つの属性、 junos:changed-seconds
および junos:changed-localtime
があります。
<configuration junos:changed-seconds="1279908006" junos:changed-localtime="2010-07-23 11:00:06 PDT">
属性の junos:changed-seconds
値は「1279908006」、属性の junos:changed-localtime
値は「2010-07-23 11:00:06 PDT」です。
名前 空間
名前空間を 使用すると、XML ドキュメントに同じタグ、属性、関数名をさまざまな目的で含め、名前の競合を回避できます。たとえば、多くの名前空間が関数を print
定義していて、それぞれが異なる機能を示している場合があります。特定の名前空間で定義された機能を使用するには、その関数を目的の機能を定義する名前空間に関連付ける必要があります。
定義済みの名前空間からタグ、属性、または関数を参照するには、まずスタイル シート宣言で名前空間 の統一リソース識別子 (URI)を指定する必要があります。次に、URI で名前空間からタグ、属性、または関数を修飾します。URI は長いことが多いので、通常は短いプレフィックスが URI にマッピングされます。
次の例では、 jcs
URI http://xml.juniper.net/junos/commit-scripts/1.0 によって識別される名前空間にプレフィックスがマッピングされ、コミット、op、イベント、SNMP スクリプトで使用される拡張機能が定義されています。次に jcs
、プレフィックスは、その名前空間で定義されている関数の output
先頭に追加されます。
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0"> ... <xsl:value-of select="jcs:output('The VPN is up.')"/> </xsl: stylesheet>
処理中に、プレフィックスが URI 参照に展開されます。要素または関数を定義 output
する複数の名前空間がありますが、 を jcs:output
使用すると、どの output
関数が使用されるかを明示的に定義します。名前空間のコンテンツを参照する任意のプレフィックスを選択できますが、XML ドキュメントには関連付けられた URI にプレフィックスをバインドする既存の宣言が必要です。
ドキュメント タイプの定義
XML タグ付きドキュメントまたはデータ セットは、一連のルールで、その中のアイテムの順序と相互関係を指定するため、 構造化されています。ルールは、タグ付けされた各アイテムが発生できるコンテキストを定義します。場合によっては、発生する必要があります。 ドキュメントタイプ定義( DTD)と呼ばれるファイルは、ドキュメントまたはデータセットに表示できるすべてのタグ要素を一覧表示し、タグ間の親子関係を定義し、他のタグ特性を指定します。同じ DTD を多くの XML ドキュメントまたはデータ セットに適用できます。