XML Tutorial

XML หน้าแรก บทนำ XML XML วิธีใช้งาน XML Tree ไวยากรณ์ XML องค์ประกอบ XML คุณสมบัติ XML XML เนมสเปซ จอแสดงผล XML XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink เครื่องมือตรวจสอบ XML XML DTD XML Schema XML Server ตัวอย่าง XML แบบทดสอบ XML ใบรับรอง XML

XML AJAX

บทนำ AJAX AJAX XMLHttp คำขอ AJAX การตอบสนอง AJAX ไฟล์ AJAX XML AJAX PHP AJAX ASP ฐานข้อมูล AJAX แอปพลิเคชัน AJAX ตัวอย่าง AJAX

XML DOM

บทนำ DOM โหนด DOM การเข้าถึง DOM ข้อมูลโหนด DOM รายการโหนด DOM DOM Traversing การนำทาง DOM DOM รับค่า DOM เปลี่ยนโหนด DOM ลบโหนด DOM แทนที่โหนด DOM สร้างโหนด DOM เพิ่มโหนด DOM โคลนโหนด ตัวอย่าง DOM

บทช่วย สอนXPath

บทนำ XPath โหนด XPath ไวยากรณ์ XPath แกน XPath ตัวดำเนินการ XPath ตัวอย่าง XPath

กวดวิชาXSLT

บทนำ XSLT ภาษา XSL การแปลง XSLT XSLT <แม่แบบ> XSLT <ค่าของ> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <เลือก> ใช้ XSLT XSLT บนไคลเอนต์ XSLT บนเซิร์ฟเวอร์ XSLT แก้ไข XML ตัวอย่าง XSLT

กวดวิชาXQuery

บทนำ XQuery ตัวอย่าง XQuery XQuery FLWOR XQuery HTML ข้อกำหนด XQuery ไวยากรณ์ XQuery XQuery เพิ่ม XQuery Select ฟังก์ชัน XQuery

XML DTD

บทนำ DTD บล็อกตัวต่อ DTD องค์ประกอบ DTD คุณสมบัติ DTD องค์ประกอบ DTD เทียบกับ Attr หน่วยงาน DTD ตัวอย่าง DTD

ส คีมา XSD

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

XSD Complex

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

ข้อมูลXSD

XSD สตริง วันที่ XSD XSD ตัวเลข XSD เบ็ดเตล็ด ข้อมูลอ้างอิง XSD

บริการเว็บ

XML Services XML WSDL XML SOAP XML RDF XML RSS

อ้างอิง

ประเภทโหนด DOM โหนด DOM DOM NodeList DOM NamedNodeMap เอกสาร DOM องค์ประกอบ DOM แอตทริบิวต์ DOM ข้อความ DOM DOM CDATA ความคิดเห็นของ DOM DOM XMLHttpRequest DOM Parser องค์ประกอบ XSLT ฟังก์ชัน XSLT/XPath

XML เนมสเปซ


XML Namespaces มีวิธีการหลีกเลี่ยงความขัดแย้งของชื่อองค์ประกอบ


ความขัดแย้งของชื่อ

ใน XML ชื่อองค์ประกอบถูกกำหนดโดยนักพัฒนา ซึ่งมักส่งผลให้เกิดข้อขัดแย้งเมื่อพยายามผสมเอกสาร XML จากแอปพลิเคชัน XML ต่างๆ

XML นี้มีข้อมูลตาราง HTML:

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

XML นี้มีข้อมูลเกี่ยวกับโต๊ะ (ชิ้นส่วนของเฟอร์นิเจอร์):

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

หากรวมแฟรกเมนต์ XML เหล่านี้เข้าด้วยกัน จะเกิดความขัดแย้งของชื่อ ทั้งสองมีองค์ประกอบ <table> แต่องค์ประกอบมีเนื้อหาและความหมายต่างกัน

ผู้ใช้หรือแอปพลิเคชัน XML จะไม่ทราบวิธีจัดการกับความแตกต่างเหล่านี้


การแก้ไขความขัดแย้งของชื่อโดยใช้คำนำหน้า

สามารถหลีกเลี่ยงความขัดแย้งของชื่อใน XML ได้อย่างง่ายดายโดยใช้คำนำหน้าชื่อ

XML นี้มีข้อมูลเกี่ยวกับตาราง HTML และชิ้นส่วนของเฟอร์นิเจอร์:

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

ในตัวอย่างข้างต้น จะไม่มีการขัดแย้งกันเนื่องจากองค์ประกอบ <table> ทั้งสองมีชื่อต่างกัน



เนมสเปซ XML - แอตทริบิวต์ xmlns

เมื่อใช้คำนำหน้าใน XML ต้องกำหนดเนมสเปซ สำหรับคำนำหน้า

เนมสเปซสามารถกำหนดได้โดย แอตทริบิวต์ xmlnsในแท็กเริ่มต้นขององค์ประกอบ

การประกาศเนมสเปซมีรูปแบบดังนี้ xmlns: คำนำหน้า =" URI "

<root>

<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="https://www.w3schools.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

ในตัวอย่างด้านบน:

แอตทริบิวต์ xmlns ในองค์ประกอบ <table> แรกให้คำนำหน้า h: เป็นเนมสเปซที่ผ่านการรับรอง

แอตทริบิวต์ xmlns ในองค์ประกอบ <table> ที่สองให้คำนำหน้า f: เนมสเปซที่ผ่านการรับรอง

เมื่อมีการกำหนดเนมสเปซสำหรับองค์ประกอบ องค์ประกอบย่อยทั้งหมดที่มีคำนำหน้าเดียวกันจะเชื่อมโยงกับเนมสเปซเดียวกัน

สามารถประกาศเนมสเปซในองค์ประกอบรูท XML:

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.w3schools.com/furniture">

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

หมายเหตุ: parser ไม่ได้ใช้เนมสเปซ URI เพื่อค้นหาข้อมูล

จุดประสงค์ของการใช้ URI คือการตั้งชื่อเฉพาะให้กับเนมสเปซ

อย่างไรก็ตาม บริษัทมักใช้เนมสเปซเป็นตัวชี้ไปยังหน้าเว็บที่มีข้อมูลเนมสเปซ


ตัวระบุทรัพยากรแบบสม่ำเสมอ (URI)

Uniform Resource Identifier (URI) คือสตริงของอักขระ ที่ระบุทรัพยากรอินเทอร์เน็ต

URI ที่พบบ่อยที่สุดคือUniform Resource Locator (URL) ซึ่งระบุที่อยู่โดเมนอินเทอร์เน็ต URI ที่ไม่ธรรมดาอีกประเภทหนึ่งคือUniform Resource Name (URN)


เนมสเปซเริ่มต้น

การกำหนดเนมสเปซเริ่มต้นสำหรับองค์ประกอบช่วยเราจากการใช้คำนำหน้าในองค์ประกอบย่อยทั้งหมด มันมีไวยากรณ์ต่อไปนี้:

xmlns="namespaceURI"

XML นี้มีข้อมูลตาราง HTML:

<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

XML นี้มีข้อมูลเกี่ยวกับชิ้นส่วนของเฟอร์นิเจอร์:

<table xmlns="https://www.w3schools.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

เนมสเปซในการใช้งานจริง

XSLT เป็นภาษาที่ใช้แปลงเอกสาร XML เป็นรูปแบบอื่นได้

เอกสาร XML ด้านล่าง เป็นเอกสารที่ใช้ในการแปลง XML เป็น HTML

เนมสเปซ "http://www.w3.org/1999/XSL/Transform" ระบุองค์ประกอบ XSLT ภายในเอกสาร HTML:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">Title</th>
      <th style="text-align:left">Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
</body>
</html>
</xsl:template>

</xsl:stylesheet>

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ XSLT โปรดอ่าน บทช่วย สอน XSLTของ เรา