2013-02-23 3 views
0

2 가지 값 (부패하기 쉽고 피할 수없는) 중 하나를 취할 수있는 특성 (카테고리)을 가진 부모 요소 (제품)가 있습니다. 아이템이 썩기 쉽다면, 나는 아이 요소 "음식"을 갖고 싶습니다. 그리고 그것이 부패하지 않으면, 나는 아이 요소 "주식"을 갖고 싶습니다. 보고 있듯이 XSD 1.1에서는 가능하지만 XSD 1.0에서는 가능하지 않습니다. 그러나, 나는 이것을하는 방법을 찾지 못하고있다.부모 스키마를 기반으로 자식 요소를 선택하는 xml 스키마

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="products"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="product" minOccurs="1" maxOccurs="unbounded"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="name" type="xs:string"/> 
      <xs:choice> 
       <xs:element name="food"> 
       <xs:complexType> 
        /*DEFINED FOOD HERE*? 
       </xs:complexType> 
       </xs:element> 
       <xs:element name="stock"> 
       <xs:complexType> 
        /*DEFINED STOCK HERE*/ 
       </xs:complexType> 
       </xs:element> 
      </xs:choice> 
      </xs:sequence> 
      <xs:attribute name="id" type="xs:ID"/> 
      <xs:attribute name="category"> 
      <xs:simpleType> 
       <xs:restriction base="xs:string"> 
       <xs:enumeration value="perishable"/> 
       <xs:enumeration value="nonPerishable"/> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:attribute> 
     </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

사람이 나에게 제발 도와 드릴까요 : 아래

내 코드는 중요한 부분을 보여 단축?

답변

0

당신이 뭔가를 찾고 있다면 :

<perishable> 
    <food>cheese</food> 
    </perishable> 


<xs:element name="perishable"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="food" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 
+0

죄송 echew이 dosent 도움이됩니다. 첫 번째 단락을 다시 읽어주십시오 :) –

+0

XML을 어떻게 보이게 할 것인지 예를 들어주세요. 부패하기 쉬운 기준을 충족시키지 못하면 썩기 쉬운 요소를 정의하지 않겠습니까? – echew

+0

제품에는 썩기 쉽거나 가치가없는 제품을 값으로 가질 수있는 특성이 있습니다. 특성에 부패하기 쉬운 값이 있으면 product 요소에 food 요소가 필요합니다. 특성 값이 nonPerishable이면 제품 요소 내부에 stock 요소가 있어야합니다. –

관련 문제