2016-08-19 8 views
0

이 복합 유형에 minLengthmaxLength 제한을 추가하는 데 문제가 있습니다. 내 원래 코드는 다음과 같습니다.속성을 사용하여 xsd : complexType의 내용을 제한하는 방법은 무엇입니까?

  <xs:element minOccurs="0" name="Division"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element minOccurs="0" maxOccurs="unbounded" name="ID"> 
        <xs:complexType> 
        <xs:simpleContent> 
         <xs:extension base="xs:string"> 
         <xs:attribute ref="wd:type" use="optional" /> 
         </xs:extension> 
        </xs:simpleContent> 
        </xs:complexType> 
       </xs:element> 
       </xs:sequence> 
       <xs:attribute ref="wd:Descriptor" use="optional" /> 
      </xs:complexType> 
      </xs:element> 

이 제한 사항을 추가하고 싶지만 그 방법을 모르겠습니다.

<xs:restriction base="xs:string"> 
    <xs:minLength value="0"/> 
    <xs:maxLength value="100"/> 
</xs:restriction>       

는 내가하는 SimpleType이 작업을 수행하는 방법을 알고 있지만, 복합 타입에 나는 그것을 할 방법을 모르겠어요. 누구든지 도와 줄 수 있습니까?

+0

: 여기

는 (그래서 예를 자체에 설 수 일시적 xs:attribute/@names로 대체 xs:attribute/@ref 발생을 매달려) 완벽한 작업 예입니다. – user2148983

+0

어, 'Division' 요소는 이미 콘텐츠 모델에'ID' 요소를 가지고 있습니다. 질문을 편집하고 샘플 유효한 XML을 보여 주면 도움이 될 것입니다. – kjhughes

+0

도와 주셨을 때이 질문과 이전 질문에 대한 답변을 [** 수락 **] (http://meta.stackoverflow.com/q/5234/234215)주십시오. [내 답변] (http://stackoverflow.com/a/39045446/290085)이 도움이되지 않는 경우 의견을 통해 후속 조치를 설명하십시오. [귀하의 질문 없음] (http://stackoverflow.com/users/2148983/user2148983?tab=questions)에서 진정한 답변을 받고 있다면 [ask]를 읽어보십시오. 감사. – kjhughes

답변

1

xs:simpleType을 정의하고 이름을 지정하고 xs:complexType에 추가해야합니다. 나는 그것이 부문 요소해야한다고 생각

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      version="1.0"> 
    <xs:element name="Division"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element minOccurs="0" maxOccurs="unbounded" name="ID"> 
      <xs:complexType> 
      <xs:simpleContent> 
       <xs:extension base="IDType"> 
       <xs:attribute name="attr1" use="optional" /> 
       </xs:extension> 
      </xs:simpleContent> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
     <xs:attribute name="attr2" use="optional" /> 
    </xs:complexType> 
    </xs:element> 
    <xs:simpleType name="IDType"> 
    <xs:restriction base="xs:string"> 
     <xs:minLength value="0"/> 
     <xs:maxLength value="100"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema>