ล่าสุดการพัฒนาเว็บบทเรียน
×

XML เกี่ยวกับการสอน

XML บ้าน XML บทนำ XML วิธีใช้ XML ต้นไม้ XML วากยสัมพันธ์ XML องค์ประกอบ XML แอตทริบิวต์ XML namespaces XML แสดง XML XSLT XML XPath XML XLink XML ตรวจสอบ XML DTD XML schema XML เซิร์ฟเวอร์ XML การประยุกต์ใช้งาน XML ตัวอย่าง XML ทดสอบ XML ใบรับรอง

XML DOM

DOM แนะนำ DOM โหนด DOM XMLHttpRequest DOM การเข้าถึง DOM ข้อมูลโหนด DOM รายการโหนด DOM ภายใน DOM การนำทาง DOM ได้รับค่า DOM Change โหนด DOM Remove โหนด DOM Replace โหนด DOM Create โหนด DOM Add โหนด DOM Clone โหนด DOM ตัวอย่าง

DOM การอ้างอิง

DOM ประเภทโหนด DOM ปม DOM NodeList DOM NamedNodeMap DOM เอกสาร DOM ธาตุ DOM คุณลักษณะ DOM ข้อความ DOM CDATA DOM คิดเห็น DOM XMLHttpRequest DOM parser

XML DTD

DTD แนะนำ DTD การก่อสร้างตึก DTD องค์ประกอบ DTD แอตทริบิวต์ DTD องค์ประกอบ VS attr DTD หน่วยงาน DTD ตัวอย่าง

XSD Schema

XSD แนะนำ XSD ทำอย่างไร XSD <schema> XSD องค์ประกอบ XSD แอตทริบิวต์ XSD ข้อ จำกัด

XSD ซับซ้อน

XSD องค์ประกอบ XSD ว่างเปล่า XSD เพียงองค์ประกอบ XSD ข้อความเท่านั้น XSD ผสม XSD ตัวชี้วัด XSD <any> XSD <anyAttribute> XSD การแทน XSD ตัวอย่าง

XSD Data

XSD เชือก XSD วันที่ XSD เป็นตัวเลข XSD อื่น ๆ XSD การอ้างอิง

Web บริการ

XML บริการ XML WSDL XML SOAP XML RDF XML RSS

 

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 คุณควรพยายามหลีกเลี่ยงพวกเขา ใช้องค์ประกอบของเด็กหากข้อมูลที่ให้ความรู้สึกเหมือนข้อมูล


วิธีที่ชื่นชอบของฉัน

I like to store data in child elements.

ต่อไปนี้สามเอกสาร 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>

องค์ประกอบการขยายตัววันที่ถูกนำมาใช้ในไตรมาสที่สาม: (THIS IS MY FAVORITE) :

<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>

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

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

บางส่วนของปัญหาที่มีคุณลักษณะดังนี้

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

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

จะไม่จบลงเช่นนี้ (this is not how XML should be used) :

<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 และไม่ได้เป็นส่วนหนึ่งของข้อมูลที่บันทึกได้

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