xsd:all
복잡한 유형으로 사용 하고 있습니다. 유효성을 검사하는 동안 필수 요소를 놓친 경우 모든 요소가 표시됩니다. 누락 된 정확한 요소는 표시되지 않습니다.
그러나 내가 사용한다면 xsd:sequence
정확히 놓친 요소를 얻을 수 있습니다.
이 둘 사이에 차이점이 있습니까?
xsd:sequence
: XML 요소는 동일한 순서 여야합니다.
그러나 xsd:all
: XML 요소는 임의의 순서 일 수 있습니다.
xsd:all
복잡한 유형으로 사용 하고 있습니다. 유효성을 검사하는 동안 필수 요소를 놓친 경우 모든 요소가 표시됩니다. 누락 된 정확한 요소는 표시되지 않습니다.
그러나 내가 사용한다면 xsd:sequence
정확히 놓친 요소를 얻을 수 있습니다.
이 둘 사이에 차이점이 있습니까?
xsd:sequence
: XML 요소는 동일한 순서 여야합니다.
그러나 xsd:all
: XML 요소는 임의의 순서 일 수 있습니다.
답변:
<xsd:all>
하위 요소가 임의의 순서로 나타날 수 있음을 지정합니다.
<xsd:sequence>
하위 요소가 언급 된 순서로만 나타날 수 있음을 지정합니다.
시퀀스 예 :
<xs:element name="compElement">
<xs:complexType>
<xs:sequence>
<xs:element name="ele1" type="xs:string"/>
<xs:element name="ele2" type="xs:string"/>
<xs:element name="ele3" type="xs:string"/>
<xs:element name="ele4" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
이 xsd에서 XML을 생성하면 다음과 같이 보일 것입니다.
<compElement>
<ele1>First</ele1>
<ele2>Second</ele2>
<ele3>Third</ele3>
<ele4>Fourth</ele4>
</compElement>
모두를위한 예 :
<xs:element name="compElement">
<xs:complexType>
<xs:all>
<xs:element name="ele1" type="xs:string"/>
<xs:element name="ele2" type="xs:string"/>
<xs:element name="ele3" type="xs:string"/>
<xs:element name="ele4" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
이 xsd에서 XML 파일을 생성하면 다음과 같이 보일 수 있습니다.
<compElement>
<ele2>Second</ele2>
<ele1>First</ele1>
<ele4>Fourth</ele4>
<ele3>Third</ele3>
</compElement>
더 많은 정보 XSD에 대한 모든
추가 정보 XSD에 : 순서
질문에 답했으면 좋겠습니다.
<xs:all>
자식 요소가 발생할 수있는 횟수를 제한하는 곳을 인용 할 수 있습니까? W3C 사양에서 이에 대한 증거를 찾을 수 없습니다.
모든 표시기
<all>
자식 요소는 어떤 순서로 표시 할 수있는, 각각의 하위 요소가 한 번만 발생해야 함을 표시 지정 :
시퀀스 표시기
<sequence>
자식 요소가 특정 순서에 표시해야 함을 표시 지정 :
스키마는 준수 문서를 구성하는 항목을 정의 할뿐입니다.
비준수보고 방법은 전적으로 검증 인에게 달려 있습니다. 유효성 검사기가 누락 된 필드를 정확히보고하는 것을 막을 수는 없지만 사용하는 필드는이 경우에 그렇지 않습니다.
그것이 버그이든 의도적 으로든 유효성 검사기 공급자와 논의해야합니다.
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
<xs:element name="school">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
여기:
xs : 요소 정의합니다.
xs : all : 자식 요소가 임의의 순서로 나타날 수 있음을 나타냅니다.
xs : 시퀀스 : 언급 된 순서 대로만 자식 요소가 표시됨을 나타냅니다.
xs : complexType : 다른 요소가 포함되어 있음을 나타냅니다.
xs : simpleType : 다른 요소를 포함하지 않음을 나타냅니다.
유형 : 문자열, 십진수, 정수, 부울, 날짜, 시간,
추가 속성의 도움으로 여러 작업을 수행 할 수 있습니다.
xsd에서 모든 작업을 수행하는 것은 xml보다 간단합니다.
under tag를 사용하면 해당 complexType에서 선언 된 모든 요소가 XML 문서에서 동일한 순서로 나타나야 함을 나타냅니다. 그렇지 않으면 오류가 발생합니다. 적절한 순서로 요소를 지정할 필요가 없기 때문입니다.