XSD วิธีการ?
เอกสาร XML สามารถมีการอ้างอิงถึง DTD หรือ XML Schema
เอกสาร XML อย่างง่าย
ดูเอกสาร XML อย่างง่ายที่เรียกว่า "note.xml":
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
ไฟล์ DTD
ตัวอย่างต่อไปนี้คือไฟล์ DTD ชื่อ "note.dtd" ซึ่งกำหนดองค์ประกอบของเอกสาร XML ด้านบน ("note.xml"):
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
บรรทัดแรกกำหนดองค์ประกอบบันทึกย่อให้มีองค์ประกอบย่อยสี่องค์ประกอบ: "ถึง จาก หัวเรื่อง เนื้อหา"
บรรทัดที่ 2-5 กำหนดถึง จาก หัวเรื่อง องค์ประกอบของร่างกายให้เป็นประเภท "#PCDATA"
ถึง XML Schema
ตัวอย่างต่อไปนี้คือไฟล์ XML Schema ชื่อ "note.xsd" ซึ่งกำหนดองค์ประกอบของเอกสาร XML ด้านบน ("note.xml"):
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.w3schools.com"
xmlns="https://www.w3schools.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>
องค์ประกอบบันทึกเป็นประเภทที่ซับซ้อนเนื่องจากมีองค์ประกอบอื่นๆ องค์ประกอบอื่นๆ (ถึง จาก ส่วนหัว เนื้อหา) เป็นประเภทที่เรียบง่ายเนื่องจากไม่มีองค์ประกอบอื่นๆ คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับประเภทที่เรียบง่ายและซับซ้อนในบทต่อไปนี้
การอ้างอิงถึง DTD
เอกสาร XML นี้มีการอ้างอิงถึง DTD:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM
"https://www.w3schools.com/xml/note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
การอ้างอิงถึง XML Schema
เอกสาร XML นี้มีการอ้างอิงถึง XML Schema:
<?xml version="1.0"?>
<note
xmlns="https://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.w3schools.com/xml note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>