แอตทริบิวต์ XSD
แอตทริบิวต์ทั้งหมดถูกประกาศเป็นประเภทอย่างง่าย
แอตทริบิวต์คืออะไร?
องค์ประกอบอย่างง่ายไม่สามารถมีแอตทริบิวต์ได้ หากองค์ประกอบมีคุณสมบัติ จะถือว่าเป็นประเภทที่ซับซ้อน แต่แอตทริบิวต์นั้นมักถูกประกาศเป็นประเภทง่าย ๆ
จะกำหนดแอตทริบิวต์ได้อย่างไร?
ไวยากรณ์สำหรับการกำหนดแอตทริบิวต์คือ:
<xs:attribute name="xxx" type="yyy"/>
โดยที่ xxx คือชื่อของแอตทริบิวต์และ yyy ระบุประเภทข้อมูลของแอตทริบิวต์
XML Schema มีชนิดข้อมูลในตัวจำนวนมาก ประเภทที่พบบ่อยที่สุดคือ:
- xs:สตริง
- xs:ทศนิยม
- xs:จำนวนเต็ม
- xs:บูลีน
- xs:วันที่
- xs:เวลา
ตัวอย่าง
นี่คือองค์ประกอบ XML ที่มีแอตทริบิวต์:
<lastname lang="EN">Smith</lastname>
และนี่คือคำจำกัดความแอตทริบิวต์ที่เกี่ยวข้อง:
<xs:attribute name="lang" type="xs:string"/>
ค่าเริ่มต้นและค่าคงที่สำหรับแอตทริบิวต์
แอตทริบิวต์อาจมีค่าเริ่มต้นหรือค่าคงที่ที่ระบุ
ค่าเริ่มต้นจะถูกกำหนดให้กับแอตทริบิวต์โดยอัตโนมัติเมื่อไม่ได้ระบุค่าอื่น
ในตัวอย่างต่อไปนี้ ค่าเริ่มต้นคือ "EN":
<xs:attribute name="lang" type="xs:string" default="EN"/>
ค่าคงที่ถูกกำหนดให้กับแอตทริบิวต์โดยอัตโนมัติด้วย และคุณไม่สามารถระบุค่าอื่นได้
ในตัวอย่างต่อไปนี้ ค่าคงที่คือ "EN":
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
คุณสมบัติที่ไม่บังคับและจำเป็น
แอตทริบิวต์เป็นทางเลือกโดยค่าเริ่มต้น หากต้องการระบุว่าต้องมีแอตทริบิวต์ ให้ใช้แอตทริบิวต์ "use":
<xs:attribute name="lang" type="xs:string" use="required"/>
ข้อจำกัดเกี่ยวกับเนื้อหา
เมื่อองค์ประกอบหรือแอตทริบิวต์ XML มีการกำหนดประเภทข้อมูล จะมีการจำกัดเนื้อหาขององค์ประกอบหรือแอตทริบิวต์
หากองค์ประกอบ XML เป็นประเภท "xs:date" และมีสตริงเช่น "Hello World" องค์ประกอบจะไม่ตรวจสอบ
ด้วย XML Schema คุณสามารถเพิ่มข้อจำกัดของคุณเองให้กับองค์ประกอบ XML และแอตทริบิวต์ของคุณ ข้อจำกัดเหล่านี้เรียกว่าแง่มุม คุณสามารถอ่านเพิ่มเติมเกี่ยวกับแง่มุมต่างๆ ในบทต่อไป