컴퓨터 공부/XML

[5월 15일] XML schema data type + Namespace in Schema

려리군 2009. 5. 15. 14:33

Simple Type : element와 attribute가 없는 텍스트에 대해 타입을 지정.

Complex Type : element와 attribute를 가지는 타입을 정의


<simpleType>

List Types<list> : 하나의 타입의 값들로만 반복(배열과 비슷)

union Types<union> : atomic 혹은 list타입을 가질 수 있음(구조체와 비슷)


facet (<restrict>)

속성이나 element에 대해 제약을 줄 때 사용한다.

base : 제약이 없는 원래의 타입을 적어주는 restrtict element의 attribute

 - pattern facet(<pattern>)

    값에 대해서 정규 표현을 이용한 제약을 줄 수 있음.

 - enumeration facet(<enumeration>) 

    리스트에 있는 값만 가질 수 있음.


상속<extension>

기존 Base Type을 확장(extension element 안에 base 속성 추가)

complexType의 경우 : element등을 추가 <complexContent> 안에 타입 확장

simpleType의 경우 : element를 제외하고 추가 <simpleContent> 안에 타입 확장

예시) 속성을 가질 수 있고 새로운 타입의 값(내용)을 가지는 element를 정의할때 사용.


스키마의 네임스페이스

① 스키마의 Global 변수는 namespace의 prefix 포함하여야 한다.

예시) 

네임 스페이스 지정

<xsd:schema ... xmlns:NS1="my.sample.target.namespace">

(중략) Global변수 선언

<xsd:element name="Element1" type="Type1"/>

(중략) 해당 prefix를 포함하여 타입 참조.

<xsd:element ref="NS1:Element1">

② Global 인스턴스들은 모두 prefix를 가져야 한다.


elementFormDefault = "qualified"

모든 element들이 namespace에 속하도록 한다.


XML스키마 실습.

- User의 id는 "XXX-0000"형태. (X는 알파벳, 0은 숫자)

- 생일의 연, 월, 일이 올바른 값이어야 한다.


user_sdr.xsd

user.xml




user_sdr.xsd
0.0MB
user.xml
0.0MB