2012-07-23 4 views
9

C# 응용 프로그램에 포함 된 XSD에 대해 사용자 입력 XML 파일의 유효성을 검사 할 수있는 메서드가 있습니다. 그것은 정상적으로 작동하지만 모든 하위 요소가 XSD에 정의 된 정확한 순서로 있어야합니다. 내게는 요소가 존재하는 한 순서는 중요하지 않습니다. 예를 들어XSD에 대해 XML 유효성 검사 및 자식 요소 순서 무시

, 나는 다음과 같은 XSD가 있다면 ... 내가 그것을 확인하는 경우

<xs:element maxOccurs="unbounded" name="ParentElement"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="FirstChildElement" type="xs:string" /> 
     <xs:element name="SecondChildElement" type="xs:string" /> 
     <xs:element name="ThirdChildElement" type="xs:string" /> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

그리고이 같은 XML

...

<ParentElement> 
    <FirstChildElement>someValue</FirstChildElement>   
    <ThirdChildElement>someValue</ThirdChildElement> 
    <SecondChildElement>someValue</SecondChildElement> 
</ParentElement> 

나는 때문에 오류가 발생하는 것 하위 요소가 잘못되었습니다.

XSD를 약간 변경하면 유효성 검사는 요소가 존재하고 올바른 부모 아래에 있지만 어떤 순서로되어 있는지에만 신경을 쓸 수 있습니다.

답변

20

시퀀스 란 요소가 특정 순서로 나타나야 함을 의미합니다. 아마도 xs : all을 원할 것입니다. 살펴보기 http://www.w3schools.com/xml/schema_complex_indicators.asp

+0

감사합니다. 그 답변입니다. 내 XSD는 VS에 의해 생성되었으므로 Sequence 태그 아래에 자식 요소가 모두 있습니다. – Jim

+1

기억해야 할 점은 xs : all은 maxOccurs를 1로만 지원하며 그 이상은 지원하지 않는다는 것입니다. 그러나 XSD 1.1 프로세서는 여전히 베타 단계에 있습니다. – vanval

+0

그들은 1.1을 출시 했습니까? – ppumkin

관련 문제