2011-11-15 2 views
1

다음 XML 조각에 대해 XSD를 쓰려고합니다. 동일한 이름이지만 다른 속성 값을 갖는 반복 요소에 대한 XSD

<loop id="1000" name="loop 1000" /> 
<loop id="1000" name="loop 1000" /> 
<loop id="2000" name="loop 2000" /> 
<loop id="2000" name="loop 2000" /> 
<loop id="2000" name="loop 2000" /> 

나는

<xs:element name="loop" maxOccurs="3"> 
    <xs:simpleType> 
    <xs:attribute use="required" fixed="1000" type="xs:string" name="id" /> 
    </xs:simpleType> 
</xs:element> 
<xs:element name="loop" maxOccurs="3"> 
    <xs:simpleType> 
    <xs:attribute use="required" fixed="2000" type="xs:string" name="id" /> 
    </xs:simpleType> 
</xs:element> 

는하지만 이것은 XML 유효성 검사에 실패한 것으로 보인다 다음 XSD를 썼다.

XML은 나의 통제하에 있지 않습니다. 어떻게해야합니까?

는 편집 :

은 내가 XML 파서 + 생성기를 쓰고 지금은이에 대해 쉽게 XSD를 작성할 수

<_1000>...</_1000> 
<_1000>...</_1000> 
<_2000>...</_2000> 
<_2000>...</_2000> 
<_2000>...</_2000> 

처럼 뭔가에 수신 된 XML을 변경했습니다.

+0

고유 속성 값에 대해 언급했지만 그 반복이 나타납니다. – Swanand

+0

고유 한 의미는 다른 attrib 값을 구별하는 것입니다. 그래서 1000과 2000은 2 개의 서로 다른 값입니다. –

답변

1
<xs:element name="loop" minOccurs="3" maxOccurs="3"> 
      <xs:simpleType> 
       <xs:attribute use="required" fixed="1000" type="xs:string" name="id" /> 
       <xs:attribute use="required" fixed="loop 1000" type="xs:string" name="name" /> 
      </xs:simpleType> 
     </xs:element> 
     <xs:element name="loop" minOccurs="3" maxOccurs="3"> 
      <xs:simpleType> 
       <xs:attribute use="required" fixed="2000" type="xs:string" name="id" /> 
       <xs:attribute use="required" fixed="loop 2000" type="xs:string" name="name" /> 
      </xs:simpleType> 
     </xs:element> 
+0

안녕하세요 스와 티 (Swati), 게시 된 XML은 완전한 XML 스 니펫입니다. 내가 성취해야 할 것은 XSD에서 언급 한 것입니다. id 1000의 루프는 3 번 반복 할 수 있고, id 2000의 루프는 3 번 반복됩니다. 나는 당신의 xsd가 그것을 정확하게 검증하지 않을 것이라고 느낍니다. –

+0

확인. 그런 다음 ''코드가 유용 할 것입니다. 그것을 밖으로 시도하십시오. –

+0

확인. 그것을 업데이트합니다. –

관련 문제