Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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) の公式 XML 仕様である Extensible Markup Language (XML) 1.0 は、http://www.w3.org/TR/REC-xml から入手できます。

次のセクションでは、XML の一般的な側面について説明します。

タグ要素

XML には、開始タグ、終了タグ、空のタグの 3 種類のタグがあります。XMLタグ名は山括弧で囲まれており、大文字と小文字が区別されます。XML 準拠のドキュメントまたはデータ セット内のアイテムは、常にペアの開始タグと終了タグで囲まれ、タグは適切にネストする必要があります。つまり、タグを開いたときと同じ順序でタグを閉じる必要があります。XML は、この点で HTML よりも厳密であり、HTMLは開始タグのみを使用することがあります。次の例では、値を囲むペアの開始タグと終了タグを示しています。終了タグは、タグ名の先頭にあるスラッシュで示されます。

タグ要素または要素という用語は、開始タグ、コンテンツ、終了タグの 3 つの部分からなるセットを指します。コンテンツは、前の例のように英数字文字列にすることも、他のタグ要素を含むコンテナータグ要素にすることもできます。わかりやすくするために、タグという用語は、タグ要素または要素と同じ意味で使用されることがよくあります。

要素が (コンテンツがない場合)は、間に何もないペアの開始タグと終了タグとして表すか、タグ名の後にスラッシュが付いた単一のタグとして表すことができます。たとえば、表記 <snmp-trap-flag/><snmp-trap-flag></snmp-trap-flag>と同等です。

前の例が示すように、山括弧は要素の名前を囲みます。これは XML 規則であり、角括弧は完全な要素名の必須部分です。Junos OS CLIコマンド文字列のオプション部分を示すためにジュニパーネットワークスのドキュメントで使用されている山括弧と混同しないでください。

Junos XML 要素は、要素名がタグで囲まれた情報の種類を示すという XML 規則に従っています。たとえば、Junos XML <interface-state> 要素はデバイス上のインターフェイスの現在のステータスの説明が含まれていることを示し、 <input-bytes> 要素はその内容が受信したバイト数を指定することを示します。

テキスト内のXML要素について議論する場合、このドキュメントでは従来、完全な要素(開始タグ、コンテンツ、および終了タグ)を表すために開始タグのみを使用していました。たとえば、ドキュメントでは、<input-bytes>number-of-bytes</input-bytes>要素全体を示すために<input-bytes>タグを参照しています。

属性

XML 要素には、要素に関する追加情報を指定する 属性の形式で関連プロパティを含めることができます。属性は要素の開始タグに表示され、属性名と値のペアで構成されます。属性構文は、属性名の後に等号、引用符で囲まれた属性値で構成されています。XML 要素には複数の属性を含めることができます。複数の属性はスペースで区切られ、任意の順序で表示できます。

次の例では、 configuration 要素には junos:changed-secondsjunos:changed-localtimeの2つの属性があります。

junos:changed-seconds属性の値は "1279908006" で、junos:changed-localtime属性の値は "2010-07-23 11:00:06 PDT" です。

名前空間

名前空間 を使用すると、XMLドキュメントに異なる目的で同じタグ、属性、または関数名を含めることができ、名前の競合を回避できます。たとえば、多くの名前空間が print 関数を定義し、それぞれが異なる機能を示す場合があります。特定の名前空間で定義された機能を使用するには、その関数を目的の機能を定義する名前空間に関連付ける必要があります。

定義された名前空間からタグ、属性、または関数を参照するには、まずスタイルシート宣言で名前空間の Uniform Resource Identifier (URI) を指定する必要があります。次に、名前空間のタグ、属性、または関数を URI で修飾します。URI は長いことが多いため、通常は短いプレフィックスが URI にマップされます。

次の例では、 jcs プレフィックスは、コミット、op、イベント、SNMPスクリプトで使用される拡張関数を定義するURI http://xml.juniper.net/junos/commit-scripts/1.0によって識別される名前空間にマッピングされています。次に、 jcs プレフィックスを、その名前空間で定義されている output 関数の先頭に追加します。

処理中、プレフィックスは URI 参照に展開されます。 output 要素または関数を定義する複数の名前空間が存在する場合がありますが、 jcs:output を使用すると、どの output 関数が使用されるかが明示的に定義されます。名前空間内のコンテンツを参照する任意のプレフィックスを選択できますが、プレフィックスを関連する URI にバインドする既存の宣言が XML ドキュメントに存在する必要があります。

ドキュメントタイプの定義

XML タグ付きのドキュメントまたはデータ セットは、一連のルールがその中のアイテムの順序と相互関係を指定するために 構造化されていますドキュメント タイプ定義 ( DTD) と呼ばれるファイルは、これらの規則を定義します。ルールは、タグ付けされた各アイテムが発生することができ、場合によっては発生する必要があるコンテキストを定義します。A DTD:

  • ドキュメントまたはデータセットに表示できるすべての要素を一覧表示します

  • タグ間の親子関係を定義します

  • その他のタグ特性を指定します

同じ DTD を多くの XML 文書またはデータ・セットに適用できます。