먼저 간단한 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를 하나하나 뜯어먹어 볼까요?

  1. 이 XML Schema에서 정의하는 XML 문서의 최상위 element는 <note>이고
  2. 이 note라는 element는 혼자서 존재하는 element가 아니라 자식 element로 이루어져 있으며 그래서 simple type이 아니라 complex type이랍니다.
  3. <note> element는 complex type에서도 자식 element가 순차적으로 나와야 하는 sequence란 뜻입니다. 즉 <note>의 하위 element인 <to>, <from>, <heading>, <body> element가 순서를 어기지 말고 나와야 한다는 뜻이죠.
  4. 이것들이 바로 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

+ Recent posts