programing

스키마 정의와 스키마 정의의 차이?

muds 2023. 9. 23. 23:08
반응형

스키마 정의와 스키마 정의의 차이?

사용중입니다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특성.

W3 Schools의 튜토리얼에서 여기여기까지.

스키마는 호환되는 문서를 구성하는 것을 정의할 뿐입니다.

규정을 준수하지 않는 것을 보고하는 방법은 전적으로 검증자에게 달려 있습니다.유효성 검사자가 누락된 필드를 정확하게 보고하는 것을 막을 수는 없지만, 이 경우에는 사용하는 필드가 없는 것으로 보입니다.

그것이 버그인지 아니면 의도적인지는 검증자의 제공자와 상의해야 할 것입니다.

단순 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

반응형