2012-02-05 4 views
1

XML 문서에 적용 할 XML 스키마 (XSD 파일)를 만들고 싶습니다. 의 다음과 같은 XML 문서를 생각해 보자 :XML 스키마 + complexType 요소 + 시퀀스의 대안

다음 원하는 제약 존중
<root> 
    <a /> 
    <b /> 
    <c /> 
    <a /> 
    <a /> 
    <b /> 
</root> 

:

  1. < 루트> 루트 요소입니다.
  2. a>, < b> 및 < c> 요소는 제한없는 횟수로 나타날 수 있습니다.
  3. <>, <b> 및 <c> 요소는 그룹화되지 않습니다. 예를 들어, 한 요소가 앞뒤로 <2> 요소 앞에오고 뒤에 올 수 있습니다. 내가 예를 들어, XML 문서에 적용 할 수있는 XML 스키마를 작성해야한다면

나는 다음과 같이 시작합니다 :

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema targetNamespace="http://doesnotmatter.com/" 
      xmlns="http://doesnotmatter.com/" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="root" 
       min="1" 
       max="1"> 
     <complexType> 

      <!-- ? --> 

     </complexType> 
    </xs:element> 

</xs:schema> 

내 스키마에 < 복합 타입> 요소를 입력하는 방법을 모른다 .
세 번째 제약 때문에 < 시퀀스> 요소를 사용할 수 없습니다.
3 가지 제약 조건을 모두 준수하도록 스키마를 어떻게 만들 수 있습니까?

편집

선택 요소는 내 문제에 키스톤이었다.

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema targetNamespace="http://doesnotmatter.com/" 
      xmlns="http://doesnotmatter.com/" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="root"> 
    <xs:complexType> 

     <xs:choice maxOccurs="unbounded"> 
     <xs:element name="a" /> 
     <xs:element name="b" /> 
     <xs:element name="c" /> 
     </xs:choice> 

    </xs:complexType> 
    </xs:element> 

</xs:schema> 

답변

0

따라서, 루트에 대한 모델은 다음과 같습니다 : A, B, C : 반복적으로 이러한 가능성 사이에서 선택
다음은 위에서 설명한 내 요구에 상응하는 XML 스키마이다. 그게 다야? 작동 단어는 선택에 따라 선택됩니다. 어쩌면 내가 뭔가를 놓친 것일 수도 있지만 그 대답은 꽤 분명 해 보인다.