Làm thế nào để sử dụng XSD?

Tài liệu XML có thể tham chiếu đến DTD hoặc XML Schema.

Tài liệu XML đơn giản:

Xem tài liệu XML có tên "note.xml":

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

Tệp DTD

Dưới đây là ví dụ về tệp DTD có tên "note.dtd" định nghĩa các phần tử của tài liệu XML trên:

<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

Định nghĩa phần tử note có bốn phần tử con: "to, from, heading, body".

Dòng 2-5 định nghĩa rằng loại của các phần tử to, from, heading, body là "#PCDATA".

XML Schema

Ví dụ sau đây là một tệp XML Schema có tên "note.xsd", nó định nghĩa các phần tử của tệp XML trên:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.codew3c.com"
xmlns="http://www.codew3c.com"
elementFormDefault="qualified">
<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

Đối tượng note là một loại phức hợp vì nó chứa các phần tử con khác. Các phần tử khác (to, from, heading, body) là loại đơn giản vì chúng không chứa các phần tử con khác. Bạn sẽ học thêm về loại phức hợp và loại đơn giản trong các chương sau.

Tham chiếu đến DTD

Tệp này chứa các tham chiếu đến DTD:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.codew3c.com/dtd/note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

Tham chiếu đến XML Schema

Tệp này chứa các tham chiếu đến XML Schema:

<?xml version="1.0"?>
<note
xmlns="http://www.codew3c.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.codew3c.com note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>