'W3C/XML'에 해당하는 글 18건

Group indicators

W3C/XML 2006. 12. 11. 22:53
그룹 지시어 (Group indicators)
그룹(Group)은 엘리먼트의 집합과의 연관을 정의할 때 사용된다.

1. 엘리먼트를 그룹핑(Grouping) 하는 방법
: 그룹핑 안에 엘리먼트를 선언

<xs:group name="studentgroup">
  <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>
- 선언된 그룹은 다른 그룹이나 complexType 에서 참조될 수 있다.

<xs:element name="student" type="studentinfo">
<xs:complexType name="studentinfo">
  <xs:sequence>
       <xs:group ref="studentgroup">
       <xs:element name="country" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
</xs:element>

@ xml 문서 결과
<student>
  <firstname>Hong</firstname>
  <lastname>Gil-Dong</lastname>
  <birthday>1999.9.9</birthday>
  <country>Korea</country>
</student>


2. 속성을 그룹핑(Grouping) 하는 방법
: 그룹핑 안에 속성을 선언

<xs:attributeGroup name="studentgroup">
  <xs:attribute name="firstname" type="xs:string"/>
  <xs:attribute name="lastname" type="xs:string"/>
  <xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>
- 선언된 Attribute의 그룹은 다른 속성 그룹이나 complexType 에서 참조될 수 있다.

<xs:element name="student" type="studentinfo">
  <xs:complexType>
       <xs:attributeGroup ref="studentgroup"/>
  </xs:complexType>
</xs:element>

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Occurrence indicators

W3C/XML 2006. 12. 11. 22:46
발생 지시어 (Occurrence indicators)

1. 최대 발생 (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>
- maxOccurs 가 10으로 설정되어 있으므로 최대 10번까지 발생하게 된다.
- 무한정 발생하고 싶을 때는 maxOccurs="unbounded" 로 설정한다.


2. 최소 발생 (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>
- minOccurs 가 0으로 설정되어 있으므로 현재 엘리먼트는 한번도 발생하지 않을 수 있고, 만약에 발생한다면 최대 10변까지 발생하게 된다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Order indicators

W3C/XML 2006. 12. 11. 22:41
순서 지시어 (Order indicators)

1. 순서에 상관이 없는 엘리먼트가 오는 경우 <xs: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>
- 이 스키마는 자식 엘리먼트의 순서가 바뀌어도 Valid 스키마 문서가 된다.

2. 여러 엘리먼트 중에 한 엘리먼트를 선택(Choice)하는 경우 <xs: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>

3. 선언된 순서(Sequence)로 엘리먼트가 오는 경우 <xs: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>
- 순서를 지키지 않으면 Valid XML 이 되지 않고 Well-Formed XML 이 된다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,
엘리먼트(Elements)

DTD에서 선언된 엘리먼트의 성격과 동일하다.
선언된 엘리먼트는 XML 문서에서 태그로 사용된다.
이렇게 만들어진 개별의 엘리먼트를 simpleType 이라 한다.

<xs:element name="name" type="xs:string"/>

  • xs:element
    엘리먼트 선언 "나는 엘리먼트다!"
  • name="name"
    엘리먼트 이름 지정
  • type="xs:string"
    현재의 엘리먼트가 갖게 되는 타입을 정한다.
    반드시 xs 접두사를 붙이고, /> 로 끝내야 한다.

속성(Attributes)

DTD의 속성과 같은 의미를 갖는다.

<xs:attribute name="country" type="xs:string" fixed="US"/>

  • xs:attribute
    속성 선언 "나는 속성이다!"
  • name="country"
    속성 이름 지정
  • type="xs:string"
    속성이 갖는 데이터 타입 선언 (string, decimal, integer, boolean, date, time 등..)
  • fixed="US"
    고정값을 갖느냐, 갖지 않느냐를 선언한다. US는 고정된 값이다.
    fixed 대신에 default가 올 수 있다.
<xs:attribute name="country" type="xs:string" use="optional"/>

  • use="optional"
    use는 엘리먼트안에서 속성이 꼭 필요한 것인지를 설정할 때 사용한다.
    속성이 꼭 필요할 땐 optional(default) 대신 required 값을 설정한다.
@ complexType에서의 속성 선언
<xs:complexType name="도시">
   <xs:attribute name="country" type="xs:string" use="optional"/>
</xs:complexType>

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

complexType

W3C/XML 2006. 12. 11. 22:20
complexType

하위 엘리먼트(subelement)와 속성(Attribute)을 포함
simpleType을 여러개 합쳐놓은 것이라고 생각해도 된다.

@ complexType로 생성된 <name> 엘리먼트 선언
  <xs:element name="name">
1:     <xs:complexType>
2:         <xs:sequence>
               <xs:element name="firstname" type="xs:string"/>
                <xs:element name="lastname" type="xs:string"/>
           </xs:sequence>
       </xs:complexType>
   </xs:element>

  1. <xs:element>
    <name> 엘리먼트에 자식 엘리먼트를 만들기 위해 complexType을 선언한다.
  2. 순서 지시어 (sequence)
    DTD에서 순서를 정하는 콤마(,)에 해당한다.
    이 sequence 안에 자식 엘리먼트를 삽입한다.

WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,