우리는 요소 지표와 문서에 사용되는 방법을 제어 할 수 있습니다.
표시
일곱 지표가 있습니다 :
주문 지표 :
- 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>