NETCONF を使用して構成階層の XML スキーマを要求する
スキーマは、デバイスで実行されているJunos OSのバージョンで利用可能なすべての構成要素を表しています。(Junos OSのバージョンを確認するには、 Junos XML API Operational Developer Referenceに記載されている運用リクエストタグ要素を発行<get-software-information>
します)。
クライアントアプリケーションは、スキーマを使用してデバイス上の設定を検証するか、単にデバイスで実行されているJunos OSのバージョンで利用可能な設定ステートメントを学習することができます。スキーマは、実際に構成されている要素や、そのタイプのデバイスで要素を設定できることを示すものではありません(一部の設定ステートメントは特定のデバイスタイプでのみ利用可能です)。現在構成されている要素とその設定のセットを要求するには、「 NETCONF を使用して構成データを<get-config>
要求する」の説明に従って、代わりにタグ要素を発行します。
XML スキーマ言語の構造と表記規則について説明するのは、このドキュメントの範囲外です。詳細については、 XMLスキーマパート0:World Wide Web Consortium(W3C)の入門書(http://www.w3.org/TR/xmlschema-0/)をご覧 ください 。入門書には基本的な概要が記載されており、正式な仕様がリストされており、詳細情報が記載されています。
詳細については、以下のセクションを参照してください。
構成階層の XML スキーマの要求
Junos OS を実行しているデバイスとの NETCONF セッションで、クライアント アプリケーションは、設定階層全体の XML スキーマ言語表現を要求するために、タグ要素に指定された値を持つ Junos XML <get-xnm-information>
タグ要素とその<type>
<namespace>
子タグ要素を<rpc>
出力します。
<rpc> <get-xnm-information> <type>xml-schema</type> <namespace>junos-configuration</namespace> </get-xnm-information> </rpc> ]]>]]>
NETCONF サーバーは、XML スキーマを で <rpc-reply>
囲み、 <xsd:schema>
タグ要素を囲みます。
<rpc-reply xmlns="URN" xmlns:junos="URL"> <xsd:schema> <!-- tag elements for the Junos XML schema --> </xsd:schema> </rpc-reply> ]]>]]>
junos.xmlファイルの作成
タグで返されるスキーマで定義されたタグ要素のほとんどは、 <xsd:schema>
Junos OS構成要素のデフォルト名前空間に属しています。ただし、少なくとも1つのタグ、 は、 <junos:comment>
別の名前空間に属します。 http://xml.juniper.net/junos/Junos-version/junos
XML 表記規則では、スキーマは 1 つの名前空間のみを記述するため、スキーマ検証ではスキーマを処理する前に追加の名前空間に関する情報をインポートする必要があります。
Junos OS リリース 6.4 以降、タグ要素はタグ要素に囲まれており、 <xsd:import>
名前空間に <xsd:schema>
必要な情報を含むファイル junos.xml を junos
参照します。例えば、以下 <xsd:import>
のタグ要素は、Junos OS リリース 20.4R1 のファイルを指定します(読みやすさのみを目的として 2 行に表示されます)。
<xsd:import schemaLocation="junos.xsd" \ namespace="http://xml.juniper.net/junos/20.4R1/junos"/>
スキーマ検証ツールでタグ要素を解釈<xsd:import>
できるようにするには、Junos OS 構成スキーマ全体を含む .xml ファイルを配置するディレクトリに junos.xml と呼ばれるファイルを手動で作成する必要があります。ファイルに以下のテキストを含めます。開始<xsd:schema>
タグの属性リストで改行を使用しないでください。次の例では、読みやすさのみを目的として改行が表示されます。この変数にはJunos-version、デバイスで実行されているJunos OSのリリース番号を代入します(たとえば、20.4R1をJunos OS 20.4の最初のリリースに置き換えます)。
<?xml version="1.0" encoding="us-ascii"?> <xsd:schema elementFormDefault="qualified" \ attributeFormDefault="unqualified" \ xmlns:xsd="http://www.w3.org/2001/XMLSchema" \ targetNamespace="http://xml.juniper.net/junos/Junos-version/junos"> <xsd:element name="comment" type="xsd:string"/> </xsd:schema>
junos.xml ファイルを検索または開くことができない場合、スキーマ検証ツールはスキーマを処理できない可能性があります。
デバイス上で実行されているJunos OSのバージョンを変更するときは、必ずjunos.xmlファイルの変数をJunos-version一致するように更新してください 。
例: XML スキーマの要求
以下の例は、Junos OSの設定スキーマを要求する方法を示しています。NETCONF サーバーの応答では、最初 <xsd:element>
のステートメントで Junos XML タグ要素を定義します。この要素は、スキーマで定義 <undocumented>
されている他のほとんどのコンテナ タグ要素で囲むことができます(コンテナ タグ要素は と <xsd:complexType>
定義されています)。
NETCONF サーバーの応答の開始タグの属性は、読みやすさのみを目的として複数行に表示されます。NETCONF サーバーは、タグまたはタグエレメント内に改行文字を挿入しません。また、実際の出力では、 JUNOS-version 変数はJunos OSリリース 20.4の初期バージョンの20.4R1などの値に置き換えられます。
スキーマの先頭付近の別 <xsd:element>
のステートメントでは、Junos XML <configuration>
タグ要素が定義されています。階層レベルに <xsd:element>
対応するタグ要素を <system>
定義する ステートメントを [edit system]
囲みます。他の階層レベルに対応するステートメントは簡潔にするために省略されます。