2009-10-16 4 views
5

새로운 요소없이 XSD 복합 유형의 요소를 포함내가이 복잡한 유형이

<xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="Id" type="Identifier"/> 
       <!-- More elements here --> 
    </xsd:sequence> 
</xsd:complexType> 

이것은 내가 실제로 원하는 것이 아닙니다. 식별자 유형의 요소를 새 요소를 만들지 않고 직접 두 번째 복합 유형에 포함하려고합니다. 예 : 단지 이렇게 같은 : 의미가

<xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="Id" type="xsd:string"/> 
     <xsd:element name="Version" type="xsd:string"/> 
       <!-- More elements here --> 
    </xsd:sequence> 
</xsd:complexType> 

희망. 사전에

감사합니다. 당신이 아이 구조를 원하지 않는 경우

답변

6

복잡한 유형의 식별자 요소에 속성을 만들 수 있습니다

발생하는 보장이 없습니다 이렇게 :

<xsd:complexType name="MySubType"> 
    <xsd:complexContent> 
     <xsd:extension base="Identifier"> 
         <xsd:sequence> 
          <!-- More elements here --> 
         </xsd:sequence> 
     </xsd:extension> 
    </xsd:complexContent> 
</xsd:complexType> 
+0

완벽한 - 감사합니다. 하나의 복합 유형에 여러 개의 확장을 포함시키는 법을 알고 있습니까? – ng5000

+1

답을 찾았습니다. 내가 원했던 것은 xsd : group을 사용하여 달성 할 수있는 다중 상속이었다. – ng5000

+0

예, 그룹은 매우 편리합니다.하지만 과장하면 혼란 스러울 수 있습니다. – skaffman

1

이 복합 형식은 항상

<Identifier> 
    <Id>string</Id> 
    <Version>string</Version> 
</Identifier> 

에 해결할 수, 당신은 요소로 아이디 및 버전을 정의하고 나중에

<xsd:element ref="Id"/> 
<xsd:element ref="Version"/> 

사용하여 참조 할 수 있습니다. 그러나 당신은 둘 다 또한 아이디 및 버전 당신은 유형을 확장 할 수 있습니다

행운 마이크