XML 튜토리얼

XML 홈 XML 소개 XML 사용 방법 XML 트리 XML 구문 XML 요소 XML 속성 XML 네임스페이스 XML 표시 XML HttpRequest XML 파서 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 유효성 검사기 XML DTD XML 스키마 XML 서버 XML 예제 XML 퀴즈 XML 인증서

XML AJAX

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

XML DOM

DOM 소개 DOM 노드 DOM 액세스 DOM 노드 정보 DOM 노드 목록 DOM 순회 DOM 탐색 DOM 값 가져오기 DOM 변경 노드 DOM 제거 노드 DOM 교체 노드 DOM 생성 노드 DOM 추가 노드 DOM 복제 노드 DOM 예제

XPath 튜토리얼

XPath 소개 XPath 노드 XPath 구문 XPath 축 XPath 연산자 XPath 예제

XSLT 튜토리얼

XSLT 소개 XSL 언어 XSLT 변환 XSLT <템플릿> XSLT <값> XSLT <각각> XSLT <정렬> XSLT <만약> XSLT <선택> XSLT 적용 클라이언트의 XSLT 서버의 XSLT XSLT XML 편집 XSLT 예

XQuery 튜토리얼

XQuery 소개 XQuery 예제 XQuery FLWOR 엑스쿼리 HTML XQuery 용어 XQuery 구문 XQuery 추가 XQuery 선택 XQuery 함수

XML DTD

DTD 소개 DTD 빌딩 블록 DTD 요소 DTD 속성 DTD 요소 대 속성 DTD 엔터티 DTD 예

XSD 스키마

XSD 소개 XSD 방법 XSD <스키마> XSD 요소 XSD 속성 XSD 제한 사항

XSD 컴플렉스

XSD 요소 XSD 비어 있음 XSD 요소만 XSD 텍스트만 XSD 혼합 XSD 지표 XSD <모든> XSD <모든 속성> XSD 대체 XSD 예

XSD 데이터

XSD 문자열 XSD 날짜 XSD 숫자 XSD 기타 XSD 참조

서비스

XML 서비스 XML WSDL XML SOAP XML RDF XML RSS

참고문헌

DOM 노드 유형 DOM 노드 DOM 노드 목록 DOM NamedNodeMap DOM 문서 DOM 요소 DOM 속성 DOM 텍스트 DOM CDATA DOM 주석 DOM XMLHttpRequest DOM 파서 XSLT 요소 XSLT/XPath 함수

XSD 지표


지표가 있는 문서에서 요소를 사용하는 방법을 제어할 수 있습니다.


지표

7가지 지표가 있습니다.

주문 표시기:

  • 모두
  • 선택
  • 순서

발생 지표:

  • 최대 발생
  • 최소 발생

그룹 표시기:

  • 그룹 이름
  • 속성 그룹 이름

주문 지표

순서 표시기는 요소의 순서를 정의하는 데 사용됩니다.

모든 표시기

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

참고: <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>


발생 지표

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

참고: 모든 "주문" 및 "그룹" 표시기(임의, 모두, 선택, 시퀀스, 그룹 이름 및 그룹 참조)에 대해 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" 요소가 "person" 요소에서 최소 한 번(minOccurs의 기본값은 1) 및 최대 10번 발생할 수 있음을 나타냅니다.

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" 요소가 "person" 요소에서 최소 0번, 최대 10번 나타날 수 있음을 나타냅니다.

팁: 요소가 무제한으로 표시되도록 하려면 maxOccurs="unbounded" 문을 사용하세요.

작동 예:

"Myfamily.xml"이라는 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" 요소는 "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>

그룹 선언 내에서 all, choice 또는 sequence 요소를 정의해야 합니다. 다음 예는 정확한 순서로 발생해야 하는 요소 그룹을 정의하는 "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>