NETCONF를 사용하여 구성 계층에 대한 XML 스키마 요청
스키마는 디바이스에서 실행되는 Junos OS 버전에서 사용할 수 있는 모든 구성 요소를 나타냅니다. (Junos OS 버전을 확인하려면 Junos XML API 운영 개발자 참조에 문서화된 운영 요청 태그 요소를 내보내 <get-software-information>
야 합니다.)
클라이언트 애플리케이션은 스키마를 사용하여 디바이스에서 구성을 검증하거나 디바이스에서 실행되는 Junos OS 버전에서 어떤 구성 명령문을 사용할 수 있는지 알아보기만 하면 됩니다. 스키마는 어떤 요소가 실제로 구성되었는지 또는 해당 디바이스 유형에 대해 요소를 구성할 수 있는지를 나타내지 않습니다(일부 구성 명령문은 특정 디바이스 유형에서만 사용할 수 있음). 현재 구성된 요소 및 해당 설정의 집합을 요청하려면 NETCONF를 사용한 구성 데이터 요청에 설명된 대로 대신 태그 요소를 내보 엽니다<get-config>
.
XML 스키마 언어의 구조 및 표기법 규칙을 설명하는 것은 이 문서의 범위를 벗어나는 것입니다. 자세한 내용은 http://www.w3.org/TR/xmlschema-0/ 에서 W3C(World Wide Web Consortium)에서 제공하는 XML Schema Part 0: Primer를 참조하십시오. 입문서에서는 기본 소개를 제공하고 자세한 정보를 찾을 수 있는 공식 규격을 설명합니다.
자세한 내용은 다음 섹션을 참조하십시오.
구성 계층에 대한 XML 스키마 요청
Junos OS를 실행하는 장치가 있는 NETCONF 세션에서 전체 구성 계층의 XML 스키마 언어 표현을 요청하면 클라이언트 애플리케이션은 태그 요소에 표시된 값을 <rpc>
사용하여 Junos XML <get-xnm-information>
태그 요소와 해당 <type>
요소 및 <namespace>
자식 태그 요소를 내보낸다.
<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.xsd 파일 만들기
태그에서 반환된 <xsd:schema>
스키마에 정의된 대부분의 태그 요소는 Junos OS 구성 요소의 기본 네임스페이스에 속합니다. 그러나 적어도 하나의 태그는 <junos:comment>
다른 네임스페이스에 속합니다. http://xml.juniper.net/junos/Junos-version/junos
. XML 규칙에 따라 스키마는 하나의 네임스페이스만 설명하므로 스키마 검증자는 스키마를 처리하기 전에 추가 네임스페이스에 대한 정보를 임포트해야 합니다.
Junos OS Release 6.4 <xsd:import>
부터 태그 요소는 태그 요소에 <xsd:schema>
동봉되어 네임스페이스에 대한 필수 정보가 포함된 파일 junos.xsd를 junos
참조합니다. 예를 들어, 다음 <xsd:import>
태그 요소는 Junos OS Release 20.4R1의 파일을 지정합니다(가독성만을 위해 두 줄에 표시).
<xsd:import schemaLocation="junos.xsd" \ namespace="http://xml.juniper.net/junos/20.4R1/junos"/>
스키마 검증자가 태그 요소를 해석 <xsd:import>
할 수 있도록 하려면 전체 Junos OS 구성 스키마가 포함된 .xsd 파일을 배치하는 디렉토리에서 junos.xsd라는 파일을 수동으로 생성해야 합니다. 파일에 다음 텍스트를 포함합니다. 오프닝 <xsd:schema>
태그의 속성 목록에서 줄 끊기를 사용하지 마십시오. 가독성만을 위해 다음 예에서 줄 끊기(Line Breaks)가 나타납니다. 변수의 Junos-version 경우 디바이스에서 실행되는 Junos OS의 릴리스 번호(예: Junos OS 20.4의 첫 번째 릴리스의 경우 20.4R1)를 대체합니다.
<?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.xsd 파일을 찾거나 열 수 없는 경우 스키마를 처리하지 못할 수 있습니다.
디바이스에서 실행되는 Junos OS 버전을 변경할 때마다 junos.xsd 파일의 변수를 일치하도록 업데이트 Junos-version 해야 합니다 .
예: XML 스키마 요청
다음 예제에서는 Junos OS 구성 스키마를 요청하는 방법을 보여줍니다. NETCONF 서버의 응답에서 첫 번째 <xsd:element>
문은 스키마에 정의된 대부분의 다른 컨테이너 태그 요소(컨테이너 태그 요소가 정의됨)에 동봉될 수 있는 Junos XML 태그 요소를 정의 <undocumented>
<xsd:complexType>
합니다.
NETCONF 서버 응답의 오프닝 태그의 속성은 가독성만을 위해 여러 줄에 나타납니다. NETCONF 서버는 태그 또는 태그 요소 내에 새 문자를 삽입하지 않습니다. 또한, 실제 출력 JUNOS-version 에서 변수는 Junos OS Release 20.4의 최초 버전에 대해 20.4R1과 같은 값으로 대체됩니다.
스키마 시작 부근의 또 다른 <xsd:element>
문은 Junos XML <configuration>
태그 요소를 정의합니다. 계층 수준에 해당하는 태그 요소를 정의하는 <system>
명령문을 동봉 <xsd:element>
합니다[edit system]
. 다른 계층 수준에 해당하는 명령문은 간결하게 생략됩니다.