2014-04-03 1 views
0

은 내가 어떻게 같은 시간에 간단한 요소가 될 수있는에 달성 할 수있는 스키마XSD 단순 유형은 복합 형

<xs:element name="a"> 
    <xs:complexType> 
    <xs:choice> 
     <xs:element ref="b"/> 
     <xs:element ref="c"/> 
    <xs:choice> 
    </xs:complexType> 
<xs:element/> 

다음습니까? 아래의 모든 경우를 처리 할 수 ​​있기를 바랍니다.

<a>TEXT</a> 
<a><b/></a> 
<a><c/></a> 

가능합니까?

답변

1

질문을 올바르게 이해하면 a가 b 또는 c 요소가있는 복합 유형이 되길 원하지만 텍스트 만 가능할 수도 있습니다. 선택 요소를 사용하면이 작업을 수행 할 수 있습니다.

this을 살펴보십시오. minOccurs를 사용하면 최소한이 요소가 발생하도록하려는 횟수를 지정할 수 있습니다. 필드를 선택적으로 만들려면 0으로 설정하십시오.

편집 : 이것은 해결책이며, 문제의 xml을 테스트 한 결과 작동합니다. 유형의 콘텐츠 형식이 요소 전용이기 때문에 당신은 혼합 된 = "진정한 필드"

<xs:element name="a"> 
<xs:complexType mixed="true"> 
    <xs:choice> 
      <xs:element minOccurs="0" ref="b"/> 
      <xs:element minOccurs="0" ref="c"/> 
    </xs:choice> 
    <xs:attribute name="name" type="xs:string" /> 
</xs:complexType> 
</xs:element> 
+0

요소 '는'가질 수없는 문자 [어린이]를 사용합니다. –

+0

예, a에 b, c 또는 TEXT가 포함되어 있어야합니다. –