최신 웹 개발 튜토리얼
 

XSD 지표


우리는 요소 지표와 문서에 사용되는 방법을 제어 할 수 있습니다.


표시

일곱 지표가 있습니다 :

주문 지표 :

  • All
  • Choice
  • Sequence

발생 지표 :

  • maxOccurs
  • minOccurs

그룹 지표 :

  • Group name
  • attributeGroup name

주문 지표

주문 지표 요소의 순서를 정의하는 데 사용된다.

모든 표시

<all> 표시 자식 요소가 어떤 순서로 표시 할 수있는, 각각의 하위 요소가 한 번만 발생해야 함을 지정합니다 :

<xs:element name="person">
  <xs:complexType>
    <xs:all>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:all>
  </xs:complexType>
</xs:element>

Note: 사용하는 경우 <all> 표시를 사용자가 설정할 수 있습니다 <minOccurs> 0 또는 1로 표시를하고 <maxOccurs> 표시 만 1로 설정 될 수있다합니다 ( <minOccurs><maxOccurs> 후술).

선택 표시

<choice> 표시등이 하나의 하위 요소 또는 다른 하나가 발생할 수 있음을 지정합니다 :

<xs:element name="person">
  <xs:complexType>
    <xs:choice>
      <xs:element name="employee" type="employee"/>
      <xs:element name="member" type="member"/>
    </xs:choice>
  </xs:complexType>
</xs:element>

순서 표시

<sequence> 표시 자식 요소가 특정 순서로 표시해야 함을 지정합니다 :

<xs:element name="person">
   <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

발생 지표

발생 지표는 요소가 발생할 수 있습니다 빈도를 정의하는 데 사용됩니다.

Note: 모든 들어 "Order""Group" 지표 (모든, 모든, 선택, 순서, 그룹 이름 및 그룹 참조) maxOccurs에 대한 기본 값에 minOccurs는 1입니다.

maxOccurs에 표시

<maxOccurs> 표시기 소자가 발생할 수있는 최대 횟수를 지정

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="full_name" type="xs:string"/>
      <xs:element name="child_name" type="xs:string" maxOccurs="10"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

이 예는 위의 것을 나타낸다 "child_name" 요소는 한 번에 (에 minOccurs의 기본 값이 1)과에 최대 10 회까지의 최소 발생할 수 있습니다 "person" 요소를.

에 minOccurs 표시

<minOccurs> 표시기 소자가 발생할 수있는 최소 횟수를 지정

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="full_name" type="xs:string"/>
      <xs:element name="child_name" type="xs:string"
      maxOccurs="10" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

이 예는 위의 것을 나타낸다 "child_name" 요소가 제로 시간의 최소 및에 최대 10 회까지 발생할 수 있습니다 "person" 요소를.

Tip: 은 maxOccurs = "무제한"문을 사용하여, 요소가 무제한을 표시 할 수 있도록하려면 :

A working example:

라는 XML 파일 "Myfamily.xml" :

<?xml version="1.0" encoding="UTF-8"?>

<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">

<person>
  <full_name>Hege Refsnes</full_name>
  <child_name>Cecilie</child_name>
</person>

<person>
  <full_name>Tove Refsnes</full_name>
  <child_name>Hege</child_name>
  <child_name>Stale</child_name>
  <child_name>Jim</child_name>
  <child_name>Borge</child_name>
</person>

<person>
  <full_name>Stale Refsnes</full_name>
</person>

</persons>

XML 파일은 상기이라는 루트 요소 포함 "persons" . 이 루트 요소 내부에서 우리는 세 가지 정의 "person" 요소를. 각각의 "person" 요소가 있어야합니다 "full_name" 요소를하며 최대 5 개 포함 할 수 있습니다 "child_name" 요소를.

여기 스키마 파일 "family.xsd" :

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="persons">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="person" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="full_name" type="xs:string"/>
            <xs:element name="child_name" type="xs:string"
            minOccurs="0" maxOccurs="5"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema>

그룹 표시

그룹 지표 요소의 관련 세트를 정의하는 데 사용됩니다.

요소 그룹

요소 그룹은이 같은 그룹의 선언과 정의 :

<xs:group name="groupname">
...
</xs:group>

당신은 그룹 선언 내부의 모든, 선택, 또는 시퀀스의 요소를 정의해야합니다. 다음의 예는 명명 된 그룹 정의 "persongroup" 정확한 순서대로 발생해야하는 요소의 그룹을 정의한다 :

<xs:group name="persongroup">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
    <xs:element name="birthday" type="xs:date"/>
  </xs:sequence>
</xs:group>

그룹을 정의한 후이 같은 다른 정의를 참조 할 수 있습니다 :

<xs:group name="persongroup">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
    <xs:element name="birthday" type="xs:date"/>
  </xs:sequence>
</xs:group>

<xs:element name="person" type="personinfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:group ref="persongroup"/>
    <xs:element name="country" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

그룹 속성

속성 그룹은이 같은 attributeGroup 선언, 정의됩니다 :

<xs:attributeGroup name="groupname">
...
</xs:attributeGroup>

다음 예제라는 이름의 속성 그룹 정의 "personattrgroup" :

<xs:attributeGroup name="personattrgroup">
  <xs:attribute name="firstname" type="xs:string"/>
  <xs:attribute name="lastname" type="xs:string"/>
  <xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

이 속성 그룹을 정의한 후이 같은 다른 정의를 참조 할 수 있습니다 :

<xs:attributeGroup name="personattrgroup">
  <xs:attribute name="firstname" type="xs:string"/>
  <xs:attribute name="lastname" type="xs:string"/>
  <xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>

<xs:element name="person">
  <xs:complexType>
    <xs:attributeGroup ref="personattrgroup"/>
  </xs:complexType>
</xs:element>