XML Validation
- เอกสาร XML ที่ถูกต้องนั้นจะต้องมีคุณสมบัติเป็น "Well Formed"
- การตรวจทานความถูกต้องของเอกสาร XML ก็คือการทำ Validation
XML ที่มีคุณสมบัติเป็น Well Formed
คุณสมบัติ Well Formed ของเอกสาร XML จะต้องมีความถูกต้องตาม
กฎของ XML ได้แก่
1.XML ต้องมี Root Element เสมอ
2.XML ต้องมีเเท็กปิดเสมอ
3.XML เป็น Case Sensitive
4.XML ห้าม "Nested closing" หรือ ห้ามปิดแท็กซ้อนกัน
5.XML ต้องมีเครื่องหมาย Double-Quoted ครอบ Attribute ("__")
ตัวอย่าง code
โค้ด: เลือกทั้งหมด
<?xml version="1.0"?>
<student>
<id>140006842</id>
<firstname>Siripapha</firstname>
<lastname>Pongsomboon</lastname>
<age>21 Year</age>
<born>11-18-1989</born>
<phone>089-74525874</phone>
</student>
เอกสาร XML ที่ถูกต้อง (Valid)
เอกสาร XML ที่ถูกต้องจะมีคุณสมบัติเป็น Well Formed จะเป็นการยืนยันความถูกต้องของชนิดของเอกสาร DTD ด้วย
โค้ด: เลือกทั้งหมด
<?xml version="1.0"?>
<!DOCTYPE student SYSTEM "Student.dtd">
<student>
<id>140006842</id>
<firstname>Siripapha</firstname>
<lastname>Pongsomboon</lastname>
<age>21 Year</age>
<born>11-18-1989</born>
<phone>089-74525874</phone>
</student>
DOCTYPE ในตัวอย่าง code ข้างต้นมีการอ้างอิงภายในกับไฟล์ DTD
XML DTD
DTD เป็นการตรวจสอบความถูกต้องของเอกสาร XML ว่ามีความถูกต้องกับที่กำหนดไว้นไฟล์ DTD หรือไม่ ถ้าไม่ระบบก็จะเตือนความผิดพลาดออก
ตัวอย่างการกำหนด DTD
โค้ด: เลือกทั้งหมด
<!DOCTYPE student
[
<!ELEMENT student (id,firstname,lastname,age,born,phone)>
<!ELEMENT id (#PCDATA)>
<!ELEMENT firstname (#PCDATA)>
<!ELEMENT lastname (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT born (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
]>
XML Schema
เป็นเอกสาร XML ประเภทหนึ่ง ที่สนับสนุนโดย W3C เเต่เป็นเอกสารที่ระบุโครงสร้างของ XML ที่จะนำไปประมวลผลนั้นจะต้องเป็นอย่างไร
เช่น ต้องมี Elements อะไรบ้าง มีชนิดเป็นอะไร เป็นต้น
ตัวอย่างการกำหนด
โค้ด: เลือกทั้งหมด
<xs:element name="student">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:string"/>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:string"/>
<xs:element name="born" type="xs:string"/>
<xs:element name="phone" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>