먼저 간단한 XML 문서를 하나 보시죠.
<?xml version="1.0"?>
<note>
<to>하얀 말</to>
<from>한예술</from>
<heading>당부 사항</heading>
<body>주말에 보기로 한 것, 잊지 마세요. 알았죠?</body>
</note>
위와 같은 일은 절대로 없겠죠? 어쨌든, 이 XML 문서를 정의하려면 XML Schema는 어찌 생겨 먹었을까요? 아래와 같이 생겼습니다.
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com" elementFormDefault="qualified">
<xs:element name="note"> ................................................................(1)
<xs:complexType> .......................................................................(2)
<xs:sequence> ..........................................................................(3)
<xs:element name="to" type="xs:string"/> ....................................(4)
<xs:element name="from" type="xs:string"/> ................................(4)
<xs:element name="heading" type="xs:string"/> ...........................(4)
<xs:element name="body" type="xs:string"/> ...............................(4)
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML Schema는 <schema> element로 시작하고 끝납니다. 그래서 나온 거구요, 각 element 앞의 xs:라는 접두사는 XML Namespace 때문에 붙은 것은 아시리라 믿고, 모르시면 XML Namespace 공부를 따로 하실 것을 권합니다. 그럼 위 XML Schema를 하나하나 뜯어먹어 볼까요?
- 이 XML Schema에서 정의하는 XML 문서의 최상위 element는 <note>이고
- 이 note라는 element는 혼자서 존재하는 element가 아니라 자식 element로 이루어져 있으며 그래서 simple type이 아니라 complex type이랍니다.
- <note> element는 complex type에서도 자식 element가 순차적으로 나와야 하는 sequence란 뜻입니다. 즉 <note>의 하위 element인 <to>, <from>, <heading>, <body> element가 순서를 어기지 말고 나와야 한다는 뜻이죠.
- 이것들이 바로 simple type입니다. <to>, <from>, <heading>, <body>이고 문자열을 받는 element란 뜻이죠. 별 것 없죠?
그렇다면 이 XML Schema를 따르는 XML 문서는 어떻게 만들까요? 해당 XML 문서의 서두에 "이 XML 문서는 이 XML Schema를 따른다는 표시를 하게 되는데, 이 글 맨 위의 XML에다가 이 표시를 해 보도록 하겠습니다.
<?xml version="1.0"?>
<note xmlns="http://www.w3school.com"
xmlns:xsi=http://www.w3c.org/2001/XMLSchema-instance
xsi:schemaLocation="http://www.w3school.com note.xsd">
<to>하얀 말</to>
<from>한예술</from>
<heading>당부 사항</heading>
<body>주말에 보기로 한 것, 잊지 마세요. 알았죠?</body>
</note>
<note> element에 attribute가 많이 달렸죠? 위에서 정의한 XML Schema의 instance인 XML 문서의 root element에 scheamLocation이라는 attribute라는 것으로 XML를 지정하는 것을 보실 수 있습니다. Schema 또한 schemaLocation은 http://www.w3c.org/2001/XMLScheam-instance namespace에 속하는 attribute임을 알려주고 있습니다.
출처 : http://ryudaewan.springnote.com/pages/380047
'Technology > Programming' 카테고리의 다른 글
Javascript / 페이지이동 (0) | 2009.10.28 |
---|---|
JSTL / 웹페이지 경로 알아내기 (상대경로, 절대경로) (0) | 2009.10.28 |
Javascript / 문장의 처음과 끝의 공백을 제거해주는 정규표현식 (0) | 2009.10.28 |
JSP / JSP 페이지 요소 (0) | 2008.02.21 |
JAVA / 자바 커리큘럼 (0) | 2008.02.20 |