Latest web development tutorials

XML 스키마 요소를 교체

XML 스키마, 요소가 다른 요소로 대체 ​​될 수있다.


대체 요소

우리의 고객을 영국과 노르웨이 : 우리가 설명 할 수 있습니다. 우리는 사용자가 XML 문서 또는 요소의 영어 이름 노르웨이 요소 이름을 사용하도록 선택할 수있는 능력을 원한다.

이 문제를 해결하기 위해, 우리는 XML 스키마의 substitutionGroup을 정의 할 수있다. 첫째, 우리는 기본 요소를 교체 할 수 있습니다 일단 우리는 이러한 요소를 선언 할 수 사소한 요소를 선언합니다, 주요 요소를 선언합니다.

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

위의 예에서 "이름"요소는 "이름"요소를 대체 할 수있는 주요 요소 "navn"요소입니다.

XML 스키마 단편을 고려 :

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
<xs:sequence>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

(위의 스키마에 따라)이 같은 유효한 XML 문서 :

<customer>
<name>John Smith</name>
</customer>

아니면 이런 식으로 뭔가 :

<kunde>
<navn>John Smith</navn>
</kunde>


정지 요소를 교체

다른 요소는 블록의 속성을, 지정된 요소를 교체 사용 방지하기 위해 :

<xs:element name="name" type="xs:string" block="substitution"/>

XML 스키마 단편 참조 :

<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
<xs:sequence>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

유효한 XML 문서 (위의 스키마에 따라) 다음과 같아야합니다 :

<customer>
<name>John Smith</name>
</customer>

그러나, 다음의 문서를 더 이상 합법적 아니오

<kunde>
<navn>John Smith</navn>
</kunde>


사용 substitutionGroup

교체 가능한 구성 요소는 동일한 형태의 주요 요소, 또는 주요 요소로부터 유래한다. 종류가 같은 종류의 기본 요소의 요소를 교체 할 경우, 소자의 종류가 교체 될 수 지정할 필요가 없다.

그렇지 않으면 작동하지 않습니다, substitutionGroup 제 (주 요소 및 교체 요소)의 모든 요소가 글로벌 요소로 선언해야합니다 양해 해 주시기 바랍니다!


글로벌 요소 (글로벌 요소) 란 무엇입니까?

글로벌 요소는 "스키마"요소의 직접적인 자식 요소를 말한다! 지역 요소 (로컬 요소) 다른 요소 내에 중첩 요소를 의미한다.