Latest web development tutorials

องค์ประกอบ XML และแอตทริบิวต์การเปรียบเทียบ

ใน XML และมีบทบัญญัติที่เมื่อมีการใช้แอตทริบิวต์และเมื่อใช้องค์ประกอบไม่มีบุตร


ใช้องค์ประกอบกับคุณลักษณะ

ข้อมูลที่สามารถเก็บไว้ในองค์ประกอบหรือคุณลักษณะของเด็ก

ลองดูที่ตัวอย่างเหล่านี้:

<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

ในตัวอย่างแรก "เซ็กซ์" เป็นคุณลักษณะ หนึ่งในตัวอย่างกลับมาอยู่ใน "เซ็กซ์" เป็นองค์ประกอบย่อย แต่ทั้งสองให้ข้อมูลเดียวกัน

ไม่มีบทบัญญัติพิเศษสำหรับเมื่อจะใช้คุณลักษณะและเมื่อใช้องค์ประกอบของเด็ก ประสบการณ์ของฉันอยู่ที่การใช้งานของหลายแอตทริบิวต์ใน HTML หนัก แต่ในรูปแบบ XML, การใช้องค์ประกอบย่อยก็จะรู้สึกเหมือนข้อมูล


ผมชอบวิธีที่

ผมชอบที่จะเก็บข้อมูลในองค์ประกอบของเด็ก

ต่อไปนี้สามเอกสาร XML มีตรงข้อมูลเดียวกัน:

ตัวอย่างนี้ใช้แอตทริบิวต์ "วันที่":

<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

ตัวอย่างนี้ใช้ "วันที่" องค์ประกอบ:

<note>
<date>12/11/2002</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

ตัวอย่างนี้ใช้นามสกุล "วันที่" องค์ประกอบ: (นี่คือวิธีที่ชื่นชอบของฉัน):

<note>
<date>
<day>12</day>
<month>11</month>
<year>2002</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>


หลีกเลี่ยงการใช้แอตทริบิวต์?

คุณควรหลีกเลี่ยงการใช้แอตทริบิวต์?

แอตทริบิวต์บางคนมีปัญหาต่อไปนี้:

  • คุณลักษณะที่ไม่สามารถมีค่าหลายค่า (องค์ประกอบของเด็กสามารถ)
  • คุณลักษณะที่ไม่ได้ขยายได้อย่างง่ายดาย (สำหรับความต้องการในอนาคตการเปลี่ยนแปลง)
  • คุณลักษณะที่ไม่สามารถอธิบายโครงสร้าง (องค์ประกอบของเด็กสามารถ)
  • คุณลักษณะที่มีมากขึ้นยากที่จะจัดการกับรหัสโปรแกรม
  • ค่าแอตทริบิวต์จะไม่ง่ายในการทดสอบสำหรับ DTD

ถ้าคุณใช้คุณสมบัติเป็นที่เก็บข้อมูลที่เอกสาร XML ที่เกิดจะเป็นเรื่องยากที่จะอ่านและการบำรุงรักษาพยายามที่จะใช้องค์ประกอบในการอธิบายข้อมูลเพื่ออธิบายข้อมูล. ข้อมูลเป็นเพียงการให้ข้อมูลที่ไม่เกี่ยวข้องเมื่อเราแนะนำให้ใช้สถานที่

ไม่สิ้นสุดเช่นนี้ (ซึ่งไม่ XML ควรใช้):

<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>


ยกเว้นกฎของสถานที่ให้บริการ

มีเสมอกฎอื่น

กฎระเบียบเกี่ยวกับคุณสมบัติฉันมีข้อยกเว้น

บางครั้งผมใช้รหัสองค์ประกอบที่ระบุ โปรแกรมเหล่านี้สามารถนำมาใช้เป็นชื่อแอตทริบิวต์ ID หรือรหัสในการเข้าถึงองค์ประกอบ XML ใน HTML ในสถานการณ์เดียวกันเป็นจำนวนมาก ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการนี้:

<messages>
<note id="p501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

<note id="p502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not!</body>
</note>
</messages>

เอกสาร XML ในตัวอย่างข้างต้น ID เพียงหนึ่งเคาน์เตอร์หรือตัวระบุที่ไม่ซ้ำกันในการระบุบันทึกที่แตกต่างกันมากกว่าที่จะเป็นส่วนหนึ่งของข้อมูล

ผมอยากจะบอกนี่คือเมตาดาต้าที่ (ข้อมูลเกี่ยวกับข้อมูล) ควรจะเก็บไว้เป็นคุณลักษณะและข้อมูลที่ตัวเองควรจะเก็บไว้เป็นองค์ประกอบ