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:

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

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Nhắc nhở</heading>
<body>Đừng quên cuộc họp!</body>
</note>

Tệp DTD

Dưới đây là ví dụ về tệp DTD có tên là "note.dtd", nó định nghĩa các yếu 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)>

Dòng 1 định nghĩa yếu tố note có bốn yếu tố con: "to, from, heading, body".

Dòng 2-5 định nghĩa loại của các yếu tố to, from, heading, body là "#PCDATA".

XML Schema

Ví dụ sau đây là một tệp XML Schema có tên là "note.xsd", nó định nghĩa các yếu 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>

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

Tham chiếu đến DTD

Tệp này chứa 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>Nhắc nhở</heading>
<body>Đừng quên cuộc họp!</body>
</note>

Tham chiếu đến XML Schema

Tệp này chứa 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>Nhắc nhở</heading>
<body>Đừng quên cuộc họp!</body>
</note>