กฎไวยากรณ์ XML
กฎไวยากรณ์ของ XML นั้นเรียบง่ายและสมเหตุสมผล กฎต่างๆ นั้นง่ายต่อการเรียนรู้และใช้งานง่าย
เอกสาร XML ต้องมีองค์ประกอบราก
เอกสาร XML ต้องมี องค์ประกอบ รูท หนึ่ง องค์ประกอบที่เป็น พาเร นต์ ขององค์ประกอบอื่นๆ ทั้งหมด:
<root>
<child>
<subchild>.....</subchild>
</child>
</root>
ในตัวอย่างนี้<note>คือองค์ประกอบรูท:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XML Prolog
บรรทัดนี้เรียกว่า XML prolog :
<?xml version="1.0" encoding="UTF-8"?>
บทนำ XML เป็นทางเลือก ถ้ามีต้องมาก่อนในเอกสาร
เอกสาร XML สามารถมีอักขระสากลได้ เช่น Norwegian øæå หรือ French êèé
เพื่อหลีกเลี่ยงข้อผิดพลาด คุณควรระบุการเข้ารหัสที่ใช้ หรือบันทึกไฟล์ XML ของคุณเป็น UTF-8
UTF-8 คือการเข้ารหัสอักขระเริ่มต้นสำหรับเอกสาร XML
การเข้ารหัสอักขระสามารถศึกษาได้ใน บทแนะนำชุดอักขระของ เรา
UTF-8 ยังเป็นการเข้ารหัสเริ่มต้นสำหรับ HTML5, CSS, JavaScript, PHP และ SQL
องค์ประกอบ XML ทั้งหมดต้องมีแท็กปิด
ใน XML การละเว้นแท็กปิดนั้นผิดกฎหมาย องค์ประกอบทั้งหมดต้องมีแท็กปิด:
<p>This is a paragraph.</p>
<br />
หมายเหตุ:โปรล็อก XML ไม่มีแท็กปิด! นี่ไม่ใช่ข้อผิดพลาด อารัมภบทไม่ได้เป็นส่วนหนึ่งของเอกสาร XML
แท็ก XML คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
แท็ก XML คำนึงถึงขนาดตัวพิมพ์ แท็ก <จดหมาย> แตกต่างจากแท็ก <จดหมาย>
แท็กเปิดและปิดจะต้องเขียนด้วยตัวพิมพ์เดียวกัน:
<message>This is correct</message>
"แท็กเปิดและปิด" มักเรียกว่า "แท็กเริ่มต้นและสิ้นสุด" ใช้สิ่งที่คุณต้องการ มันเป็นสิ่งเดียวกัน
องค์ประกอบ XML ต้องซ้อนกันอย่างเหมาะสม
ใน HTML คุณอาจเห็นองค์ประกอบที่ซ้อนกันอย่างไม่เหมาะสม:
<b><i>This text is bold and italic</b></i>
ใน XML องค์ประกอบทั้งหมดจะต้องซ้อนกันอย่างเหมาะสม:
<b><i>This text is bold and italic</i></b>
ในตัวอย่างข้างต้น "การซ้อนกันอย่างเหมาะสม" หมายความว่าเนื่องจากองค์ประกอบ <i> ถูกเปิดขึ้นภายในองค์ประกอบ <b> องค์ประกอบนั้นจะต้องปิดภายในองค์ประกอบ <b>
ต้องระบุค่าแอตทริบิวต์ XML เสมอ
องค์ประกอบ XML สามารถมีแอตทริบิวต์ในคู่ชื่อ/ค่าได้เช่นเดียวกับใน HTML
ใน XML ค่าแอตทริบิวต์ต้องถูกยกมาเสมอ:
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
การอ้างอิงเอนทิตี
อักขระบางตัวมีความหมายพิเศษใน XML
หากคุณวางอักขระเช่น "<" ไว้ในองค์ประกอบ XML จะทำให้เกิดข้อผิดพลาดเนื่องจาก parser จะตีความว่าเป็นจุดเริ่มต้นขององค์ประกอบใหม่
สิ่งนี้จะสร้างข้อผิดพลาด XML:
<message>salary < 1000</message>
เพื่อหลีกเลี่ยงข้อผิดพลาดนี้ ให้แทนที่อักขระ "<" ด้วยการอ้างอิงเอนทิตี :
<message>salary < 1000</message>
มีการอ้างอิงเอนทิตีที่กำหนดไว้ล่วงหน้า 5 รายการใน XML:
< | < | less than |
> | > | greater than |
& | & | ampersand |
' | ' | apostrophe |
" | " | quotation mark |
เฉพาะ < และ & เท่านั้นที่ผิดกฎหมายใน XML แต่ควรแทนที่ > ด้วย > เช่นกัน.
ความคิดเห็นใน XML
ไวยากรณ์สำหรับการเขียนความคิดเห็นใน XML นั้นคล้ายกับของ HTML:
<!-- This is a comment -->
ไม่อนุญาตให้ขีดกลาง 2 ขีดตรงกลางความคิดเห็น:
<!-- This is an invalid -- comment -->
ช่องว่างสีขาวถูกรักษาไว้ใน XML
XML จะไม่ตัด white-space หลายๆ อัน (HTML จะตัด white-space หลายๆ อันให้เป็น white-space เดียว):
XML: | Hello Tove |
HTML: | Hello Tove |
XML เก็บบรรทัดใหม่เป็นLF
แอปพลิเคชัน Windows เก็บบรรทัดใหม่เป็น: การขึ้นบรรทัดใหม่และการป้อนบรรทัด (CR+LF)
Unix และ Mac OSX ใช้ LF
ระบบ Mac รุ่นเก่าใช้ CR
XML เก็บบรรทัดใหม่เป็น LF
รูปแบบ XML
เอกสาร XML ที่สอดคล้องกับกฎไวยากรณ์ด้านบนเรียกว่าเอกสาร XML ที่ "มีรูปแบบที่ดี"