스키마 정의와 스키마 정의의 차이?
사용중입니다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:시퀀스에 대한 자세한 정보
제가 당신의 질문에 대답했길 바랍니다.
차이점:
- xsd:all - 하위 요소는 순서에 상관없이 나타날 수 있습니다.기본적으로 각 하위 요소는 한 번만 발생합니다.하위 요소의 허용 발생 횟수는 에 의해 수정될 수 있습니다.
minOccurs
그리고.maxOccurs
특성. - xsd:sequence - 하위 요소는 정의된 순서대로 나타나야 합니다.기본적으로 각 하위 요소는 한 번만 발생합니다.하위 요소의 허용 발생 횟수는 에 의해 수정될 수 있습니다.
minOccurs
그리고.maxOccurs
특성.
스키마는 호환되는 문서를 구성하는 것을 정의할 뿐입니다.
규정을 준수하지 않는 것을 보고하는 방법은 전적으로 검증자에게 달려 있습니다.유효성 검사자가 누락된 필드를 정확하게 보고하는 것을 막을 수는 없지만, 이 경우에는 사용하는 필드가 없는 것으로 보입니다.
그것이 버그인지 아니면 의도적인지는 검증자의 제공자와 상의해야 할 것입니다.
단순 XML 예:
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
위 XML의 XSD(설명):
<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:element : 요소를 정의합니다.
xs:all : 하위 요소가 순서에 상관없이 나타날 수 있음을 나타냅니다.
xs:sequence : 하위 요소가 언급된 순서로만 표시됨을 나타냅니다.
xs:complexType : 다른 요소를 포함함을 나타냅니다.
xs:simpleType : 다른 요소를 포함하지 않음을 나타냅니다.
유형: 문자열, 10진수, 정수, 부울, 날짜, 시간,
- 간단히 말해서 xsd는 XML 데이터를 특정 유형으로 표현하고 검증하는 또 다른 방법입니다.
추가 속성을 사용하면 여러 작업을 수행할 수 있습니다.
xsd에서 모든 작업을 수행하는 것은 xml보다 간단합니다.
모든 표시기
<all>
는 하위 할 수 는 indicator합니다 한합니다.
시퀀스 표시기
<sequence>
는 하위 가 특정 다로 합니다.
under tag를 사용하면 complexType MUST에서 선언된 모든 요소가 XML 문서에서 같은 순서로 나타납니다.그렇지 않으면 오류가 발생합니다.요소를 적절한 순서로 지정할 필요가 없기 때문입니다.
언급URL : https://stackoverflow.com/questions/16101488/difference-between-xsdall-and-xsdsequence-in-schema-definition
'programing' 카테고리의 다른 글
C#에서 XSLT 스타일시트를 적용하는 방법 (0) | 2023.09.23 |
---|---|
모든 레코드를 반환하는 탄력적 검색 쿼리 (0) | 2023.09.23 |
nodejs에서 senecajs(micros 서비스 툴킷)를 사용하여 mariadb에 질문 배열을 삽입하는 방법? (0) | 2023.09.23 |
객체를 배열로 변환 (0) | 2023.09.23 |
Oracle 데이터 펌프 내보내기 유틸리티를 사용하여 로컬 시스템에서 덤프 파일을 만드는 방법은 무엇입니까? (0) | 2023.09.23 |