2012-04-04 4 views
2

첫 번째 요소가 특정 유형으로 정의되고 다음 요소가 어떤 순서로든 정의되도록 지정하고자합니다. 이처럼 : 그것은 순서로 모든 노드를 강제하기 때문에XML 스키마의 순서 정의

<node> 
<!-- always at first --> 
<node-data> 
... 
</node-data> 

<!-- other nodes in any order--> 
<node3></node3> 
<node1></node1> 
<node2></node2> 
</node> 

나는 <xsd:sequence>을 사용할 수 없습니다.

도움 주셔서 감사합니다. 내 영어로 미안해.

답변

2

좋은 시작 레이아웃은 다음과 같이 수 :

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="node"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="node-data"/> 
     <xs:choice minOccurs="0" maxOccurs="unbounded">   
      <xs:element name="node3" /> 
      <xs:element name="node1" /> 
      <xs:element name="node2" /> 
     </xs:choice> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

그런 다음 유형을 구체화 할 수, 당신은 와일드 카드를 지원하려면 다음 요구 될 것이다 xs:any의 사용 등 선택에 따라 더 많은 노드를 추가 .

+0

대단히 감사합니다. xsd의 저자가이 기본 기능을 수행하는 더 쉬운 방법을 제공하지 않았다는 것은 이상한 일입니다. – RoadBump

관련 문제