이 요소 중 하나의 값에 따라 다른 하위 요소가있는 요소를 만드는 것을 좋아합니다. 나는 이것이 어떻게 달성 될 수 있는지 궁금하다. Type
이 piece
인 경우 Weight
요소가 있어야합니다. Type
이 kilogram
또는 gram
인 경우 ... 필요하지 않습니다.xml 값이 다른 하위 요소가있는 스키마 제한 목록
<?xml version="1.0" encoding="UTF-8"?>
<Amounts>
<Amount>
<Type>piece</Type>
<Value>6</Value>
<Weight>
<Value>1.5</Value>
<Type>liter</Type>
</Weight>
</Amount>
<Amount>
<Type>kilogram</Type>
<Value>0.610</Value>
</Amount>
</Amounts>
나는 이렇게 생각할 수도 있지만 오류가 발생합니다 (아래 참조). 나는 5 행에서 얻을
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.test.org/amount"
xmlns:amount="http://www.test.org/amount" elementFormDefault='qualified'>
<element name="Amount">
<complexType>
<choice>
<group ref="amount:kilogram" />
<group ref="amount:piece" />
</choice>
</complexType>
</element>
<group name="kilogram">
<sequence>
<element name="Type" fixed="kilogram" />
<element name="Value" type="float" />
</sequence>
</group>
<group name="piece">
<sequence>
<element name="Type" fixed="piece" />
<element name="Value" type="int" />
<element name="Weight">
<complexType>
<sequence>
<element name="Type" type="amount:amountType" />
<element name="Value" type="float" />
</sequence>
</complexType>
</element>
</sequence>
</group>
<simpleType name="amountType">
<restriction base="string">
<enumeration value="kg" />
<enumeration value="g" />
<enumeration value="mg" />
<enumeration value="lb" />
</restriction>
</simpleType>
</schema>
오류는 다음과 같습니다
다중이 라인에서 찾을 주석 : - COS-nonambig : "http://www.test.org/amount"를 입력하고 "http://www.test.org/amount"에서 유형 (또는 요소들이 대체 그룹)은 "고유 한 입자 속성"을 위반합니다. 이 스키마에 대한
의 유효성 검증 중에 두 개의 입자에 대해 모호성이 작성됩니다. - cos-element-consistent : '#AnonType_Amount'유형의 오류입니다. 여러 유형의 이름이 '값'인 요소는 모델에 그룹으로 표시됩니다.
흠 좋습니다. 예를 들어 XSD 1.1에서 간단한 예를 들려 줄 수 있습니까? 나중에 다시 시도하고 대답을 확인해 보겠습니다. – DarsVaeda
Priscilla Walmsley는 조건부 유형 할당에 대한 몇 가지 예를 다음과 같이 제공합니다. http://www.datypic.com/books/defxmlschema/chapter14.html (제대로 이해하고 싶다면 책을 구입하십시오!) –