บทช่วยสอน XML สำหรับผู้เริ่มต้น

XML คืออะไร?

XML ย่อมาจาก eXตึงเครียด MArkupe Lแองเกจ เป็นภาษา (ไม่ใช่> ภาษาโปรแกรม) ที่ใช้มาร์กอัปและสามารถขยายได้ มันได้มาจาก Standard Gมีพลัง MArkupe Lภาษา(SGML) XML ยังใช้ DTDs (Dอาชีพ Type Definitions) เพื่อกำหนดโครงสร้างเอกสาร XML

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

XML เป็นรูปแบบเปิด นามสกุลไฟล์ของ XML คือ .xml

ประวัติความเป็นมาของ XML

XML เริ่มต้นย้อนกลับไปในปี 1996 และเผยแพร่ครั้งแรกในปี 1998 World WIDE Web Consortium (W3C) เป็นผู้พัฒนา XMLและมันก็กลายเป็นก คำแนะนำของ W3C ใน 1998

XML มีสองเวอร์ชัน

  1. เอสเอ็มแอล 1.0
  2. เอสเอ็มแอล 1.1

เอสเอ็มแอล 1.1 เป็นเวอร์ชันล่าสุด ยัง, เอสเอ็มแอล 1.0 เป็นรุ่นที่ใช้มากที่สุด

บรรณาธิการของ XML คือ:

  • ทิม เบรย์,
  • ฌอง เปาลี,
  • ซีเอ็ม สแปร์เบิร์ก,
  • อีฟ มาเลอร์,
  • ฟรองซัวส์ เยอร์โก.

คุณสมบัติ XML

นี่คือคุณสมบัติที่สำคัญบางประการของ XML:

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

การเข้ารหัส XML

การเข้ารหัสคือการแปลงอักขระ Unicode เป็นรูปแบบไบนารี UTF ใช้สำหรับการเข้ารหัส XML ยูทีเอฟ ย่อมาจาก Uซีเอส (SCU ย่อมาจาก Uสากล Cตัวละคร Sและ) Tการแปลงร่าง Fออร์แมต

โดยทั่วไปแล้ว การเข้ารหัส UTF มีอยู่สองประเภท

  1. UTF-8 : UTF-8 ใช้ 8 บิตเพื่อแสดงอักขระ
  2. ตัวอย่าง:

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

มันใช้ 16 บิตเพื่อแสดงอักขระ

ตัวอย่าง:

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

คุณสามารถใช้การเข้ารหัสภายในการประกาศ XML UTF-8 คือการเข้ารหัสเริ่มต้นใน XML

ไวยากรณ์ XML

ส่วนรหัสด้านล่างแสดงไวยากรณ์ XML พื้นฐาน

<?xml version = "1.0" encoding = "UTF-8" ?>
<root>
    <child>
        <subchild>.....</subchild>
    </child>
</root>

ประกาศ XML

การประกาศ XML ประกอบด้วยเวอร์ชัน XML การเข้ารหัสอักขระ หรือ/และสถานะแบบสแตนด์อโลน การประกาศเป็นทางเลือก

ไวยากรณ์สำหรับการประกาศ XML

ส่วนรหัสด้านล่างแสดงไวยากรณ์สำหรับการประกาศ XML

<?xml version="version_number," encoding="character_encoding" standalone="yes_or_no" ?> 

กฎการประกาศ XML

ต่อไปนี้เป็นกฎการประกาศ XML

  • หากมีการประกาศ XML จะต้องเป็นสิ่งแรกที่ปรากฏขึ้น
  • การประกาศ XML คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และจะต้องขึ้นต้นด้วยตัวพิมพ์เล็ก <?xml.
  • มันไม่มีแท็กปิด

ตัวอย่างการประกาศ XML

ส่วนโค้ดต่อไปนี้แสดงตัวอย่างของการประกาศ XML

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

ความคิดเห็น XML

ความคิดเห็นเป็นทางเลือก การเพิ่มความคิดเห็นช่วยให้เข้าใจเนื้อหาเอกสาร

ไวยากรณ์สำหรับความคิดเห็น XML

ความคิดเห็นเริ่มต้นด้วย <!– และจบลงด้วย ->.

ส่วนโค้ดต่อไปนี้แสดงให้เห็นไวยากรณ์สำหรับความคิดเห็น XML

<!-- Add your comment here -->

แท็ก XML และองค์ประกอบ

แท็กทำงานเป็นคู่ยกเว้นการประกาศ ทุกคู่แท็กประกอบด้วย แท็กเปิด (หรือเรียกอีกอย่างว่า เริ่มแท็ก) และ แท็กปิด (หรือเรียกอีกอย่างว่า แท็กปิดท้าย).

ชื่อแท็กอยู่ในนั้น <>- สำหรับคู่แท็กบางคู่ แท็กเริ่มต้นและแท็กสิ้นสุดจะต้องเหมือนกัน ยกเว้นแท็กปิดท้ายที่มี / หลังจากที่ <.

<name>...</name>

สิ่งใดก็ตามระหว่างแท็กเปิดและแท็กปิดเรียกว่า เนื้อหา.

แท็กเปิด เนื้อหา และแท็กปิด เรียกรวมกันว่า ธาตุ.

Opening tag + content + closing tag = an element

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

ให้เราพิจารณาองค์ประกอบด้านล่าง

<age>20</age>

ในองค์ประกอบข้างต้น

  • อายุ คือ ชื่อขององค์ประกอบ

หมายเหตุ: ชื่อแท็ก เรียกอีกอย่างว่า ธาตุ or ชื่อองค์ประกอบ.

  • – แท็กเปิด
  • 25 - เนื้อหา
  • – แท็กปิด.

หากไม่มีเนื้อหาระหว่างแท็กดังที่แสดงด้านล่างจะเรียกว่า แท็กว่างเปล่า.

<result></result>

กฎแท็ก XML และองค์ประกอบ

รายการต่อไปนี้แสดงกฎของแท็ก XML และองค์ประกอบ

  • แท็กคำนึงถึงขนาดตัวพิมพ์

ตัวอย่าง:

แก้ไข:

<age>20</age>

ไม่ถูกต้อง:

<age>20</Age>

หมายเหตุ: อายุ, อายุ, และ อายุ เป็นชื่อที่แตกต่างกันสามชื่อใน XML

  • เอกสาร XML ทั้งหมดต้องมีองค์ประกอบรากเดียว
  • องค์ประกอบทั้งหมดต้องมีแท็กปิด (ยกเว้นการประกาศ)
  • ชื่อแท็กต้องขึ้นต้นด้วยตัวอักษรหรือขีดล่าง และไม่สามารถขึ้นต้นด้วย the XML
  • ชื่อแท็กสามารถประกอบด้วยตัวอักษร ตัวเลข ขีดกลาง ขีดล่าง และจุด อนุญาตให้ใช้ขีดล่างและจุดเป็นเครื่องหมายวรรคตอนเท่านั้น
  • ชื่อแท็กไม่สามารถมีช่องว่างได้
  • องค์ประกอบทั้งหมดจะต้องซ้อนกันอย่างถูกต้อง

ตัวอย่าง:

แก้ไข:

<b><u>This text is bold and italic</u></b>

ไม่ถูกต้อง:

<b><u>This text is bold and italic.</b></u>

แอตทริบิวต์ XML

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

ลองพิจารณาเอกสาร XML ด้านล่าง

<company name="ABC Holdings" location="London">  
    <chairman>Mr. John</chairman>  
    <gm>Mr. Wood</gm>  
</company>  

มีคุณสมบัติอยู่ 2 ประการคือ วัฒนธรรม องค์ประกอบเช่น พร้อมชื่อ และ ที่ตั้ง.

มาศึกษากัน พร้อมชื่อ คุณลักษณะ,

  • name=”เอบีซี โฮลดิ้งส์” – คุณลักษณะ
  • พร้อมชื่อ – ชื่อแอตทริบิวต์
  • เอบีซี โฮลดิ้งส์ – ค่าแอตทริบิวต์

หมายเหตุ: หนึ่ง ชื่อแอตทริบิวต์ ยังเป็นที่รู้จักกันในนาม คุณลักษณะ.

นอกจากนี้ โปรดทราบว่าในตัวอย่างข้างต้น วัฒนธรรม คือ ราก ธาตุ.

กฎแอตทริบิวต์ XML

รายการด้านล่างแสดงกฎแอตทริบิวต์ XML

  • ค่าแอตทริบิวต์ต้องอยู่ในเครื่องหมายคำพูด
  • องค์ประกอบไม่สามารถมีแอตทริบิวต์หลายรายการที่มีชื่อเดียวกันได้

คุณลักษณะเทียบกับองค์ประกอบ

คุณยังสับสนเกี่ยวกับความแตกต่างระหว่างแอตทริบิวต์และองค์ประกอบหรือไม่? นี่เป็นอีกตัวอย่างหนึ่ง

ลองพิจารณาเอกสาร A และ B ที่ระบุด้านล่าง

เอกสาร ก:

<teacher subject="English">
    <name>Mr. John</name>.
    <qualification>Graduate</qualification>
</teacher>

เอกสาร ข:

<teacher>
    <subject>English</subject>
    <name>Mr. John</name>
    <qualification>Graduate</qualification>
</teacher>

ในเอกสาร A หรือ เป็น คุณลักษณะ

ในเอกสาร B หรือ เป็น ธาตุ.

เอนทิตี XML

เอนทิตี XML คืออะไร

กล่าวง่ายๆ ก็คือ เอนทิตีเป็นวิธีหนึ่งในการแสดงอักขระพิเศษ เอนทิตียังเป็นที่รู้จักกันในนาม เอกลักษณ์ การอ้างอิง.

ทำไมคุณถึงต้องการเอนทิตี XML?

ตัวละครบางตัว (เช่น ", & <และอื่นๆ) จะถูกสงวนไว้ใน XML พวกเขาถูกเรียกว่า อักขระพิเศษ และไม่สามารถใช้เพื่อวัตถุประสงค์อื่นโดยตรงได้

ยกตัวอย่างเช่น < และ > สัญลักษณ์ที่ใช้สำหรับ แท็ก- คุณไม่สามารถพิมพ์จากแป้นพิมพ์โดยตรงได้ น้อยกว่า และ มากกว่า สัญญาณ แต่คุณจำเป็นต้องใช้เอนทิตีแทน

ตารางต่อไปนี้แสดงเอนทิตี XML ยอดนิยมบางส่วน

คาแรคเตอร์ Descriptไอออน ชื่อเอนทิตี การใช้
" เครื่องหมายคำพูด (เครื่องหมายคำพูดคู่) quot "
& สัญลักษณ์ amp &
' อะพอสทรอฟี (คำพูดเดียว) หลังจาก '
< Less กว่าลงชื่อ lt <
> ยิ่งใหญ่กว่าเครื่องหมาย gt >

ตัวอย่าง:

<friend>
        <name>My friends are Alice & Jane.</name>
</friend>

HTML กับ XML

ความคล้ายคลึงกันระหว่าง HTML และ XML

รายการต่อไปนี้แสดงถึงความคล้ายคลึงกันระหว่าง HTML และ XML

  • ทั้งสองเป็นรูปแบบเปิด
  • ทั้งสองเป็นภาษามาร์กอัป
  • ทั้งใช้แท็กและแอตทริบิวต์เพื่ออธิบายเนื้อหา

ความแตกต่างระหว่าง HTML และ XML

แม้ว่า XML จะเหมือนกับ HTML แต่ XML ก็ไม่สามารถแทนที่ HTML ได้ มีความแตกต่างที่สำคัญระหว่าง HTML และ XML เช่นกัน

ตารางต่อไปนี้แสดงการเปรียบเทียบระหว่าง HTML และ XML

HTML XML
หมายถึง ภาษามาร์กอัป Hypertext ภาษามาร์กอัปที่ขยายได้
ประเภทของภาษา ภาษามาร์กอัปที่กำหนดไว้ล่วงหน้า กรอบการทำงานสำหรับการระบุภาษามาร์กอัป
รายละเอียดโครงสร้าง ไม่ได้จัดเตรียมไว้ให้. ให้.
จุดมุ่งหมาย ใช้เพื่อแสดงข้อมูล ใช้ในการขนส่งข้อมูล
ขับโดย ขับเคลื่อนด้วยรูปแบบ ขับเคลื่อนด้วยเนื้อหา
ธรรมชาติ มีลักษณะคงที่ มีลักษณะแบบไดนามิก
ประเภทแท็ก แท็กที่กำหนดไว้ล่วงหน้า แท็กที่ผู้ใช้กำหนด
ขีดจำกัดแท็ก แท็กมีจำนวนจำกัด แท็กสามารถขยายได้
แท็กปิด ไม่จำเป็นต้องใช้แท็กปิด (แต่แนะนำให้ใช้แท็กปิด) จำเป็นต้องมีแท็กปิด
การสนับสนุนเนมสเปซ ไม่รองรับ ได้รับการสนับสนุน.
ความไวของตัวพิมพ์ แท็กไม่คำนึงถึงขนาดตัวพิมพ์ แท็กคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
พื้นที่สีขาว พื้นที่สีขาวไม่สามารถรักษาไว้ได้ (สามารถละเว้นพื้นที่สีขาวได้) สงวนพื้นที่สีขาวไว้ (ไม่สามารถละเลยพื้นที่สีขาวได้)
กำลังแยกวิเคราะห์ Javaต้นฉบับ ไม่ต้องการแอปพลิเคชันเพิ่มเติมใด ๆ จำเป็นต้องมีการดำเนินการ DOM
การซ้อนโค้ด ไม่จำเป็นเลย. จำเป็น
ข้อผิดพลาด สามารถละเว้นข้อผิดพลาดเล็กๆ น้อยๆ ได้ ไม่อนุญาตให้มีข้อผิดพลาด
นามสกุลไฟล์ . html or htm. . Xml
ขนาด ค่อนข้างใหญ่. ค่อนข้างเล็ก.
คำคม ไม่จำเป็นต้องมีเครื่องหมายคำพูดสำหรับค่าแอตทริบิวต์ จำเป็นสำหรับค่าแอตทริบิวต์ XML
การสนับสนุนวัตถุ เสนอการสนับสนุนวัตถุดั้งเดิม วัตถุจะต้องแสดงออกมาตามแบบแผน
การสนับสนุนที่เป็นโมฆะ รับรู้ค่าว่างโดยกำเนิด จำเป็นต้องใช้ xsi:nil กับองค์ประกอบ
การจัดรูปแบบการตัดสินใจ จัดทำแผนที่โดยตรงสำหรับข้อมูลแอปพลิเคชัน ต้องใช้ความพยายามที่สำคัญมากขึ้น
โค้งการเรียนรู้ Less เส้นโค้งการเรียนรู้ที่สูงชันเมื่อเทียบกับ XML เส้นโค้งการเรียนรู้ที่สูงชัน
จองทางเว็บไซต์ https://html.spec.whatwg.org/ https://www.w3.org/TR/xml11/

ไวยากรณ์ HTML พื้นฐาน

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
     
</body>
</html>

ไวยากรณ์ XML พื้นฐาน

<?xml version = "1.0" encoding = "UTF-8" ?>
<root>
    <child>
        <subchild>.....</subchild>
    </child>
</root>

ตัวอย่างเดียวกันกับ HTML และ XML

ด้วยภาษา HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
         <p>Book</p>
    <p>Name: Anna Karenina</p>
    <p>Author: Leo Tolstoy</p>
    <p>Publisher: The Russian Messenger</p>
</body>
</html>

ด้วย XML

<?xml version = "1.0" encoding = "UTF-8" ?>
<book>
        <name>Anna Karenina</name> 
        <author>Leo Tolstoy</author> 
      <publisher>The Russian Messenger</publisher>
</book>

JSON กับ XML

ความคล้ายคลึงกันระหว่าง JSON และ XML

รายการด้านล่างแสดงความคล้ายคลึงกันระหว่าง JSON และ XML

  • ทั้งสองเป็นรูปแบบเปิด
  • ทั้งสองอธิบายตัวเอง
  • ทั้งสองมีโครงสร้างแบบลำดับชั้น
  • ทั้งสองสามารถแยกวิเคราะห์และใช้งานได้หลายภาษา

ความแตกต่างระหว่าง JSON และ XML

มีความแตกต่างหลายประการระหว่าง XML และ JSON เช่นกัน

ตารางด้านล่างแสดงการเปรียบเทียบระหว่าง JSON และ XML

JSON XML
หมายถึง Javaสัญกรณ์วัตถุสคริปต์ ภาษามาร์กอัปที่ขยายได้
ขยายจาก Javaต้นฉบับ เอสจีเอ็มแอล
การจัดเก็บข้อมูล ข้อมูลที่จัดเก็บเป็นคู่คีย์-ค่า ข้อมูลที่จัดเก็บเป็นโครงสร้างแบบต้นไม้
namespaces ไม่รองรับเนมสเปซ รองรับเนมสเปซ
ความคิดเห็น ไม่รองรับการเพิ่มความคิดเห็น สามารถเพิ่มความคิดเห็นได้
การเข้าถึงข้อมูล เข้าถึงได้ง่ายเป็นออบเจ็กต์ JSON ข้อมูลจะต้องมีการแยกวิเคราะห์
เมตาดาต้า ไม่รองรับการเพิ่มข้อมูลเมตา สามารถเขียนข้อมูลเมตาได้
ประเภท ประเภท JSON: สตริง ตัวเลข อาร์เรย์ บูลีน ข้อมูล XML ทั้งหมดควรเป็น เงื่อนไข.
ประเภทข้อมูลที่รองรับ รองรับ ข้อความ และ จำนวน ชนิดข้อมูลเท่านั้น รองรับประเภทข้อมูลหลายประเภท (ข้อความ, ตัวเลข, รูปภาพ เป็นต้น)
การสนับสนุนของอาร์เรย์ รองรับอาร์เรย์มากขึ้นเมื่อเทียบกับ XML ไม่รองรับอาร์เรย์หรือน้อยกว่า
การสนับสนุนของวัตถุ การสนับสนุนดั้งเดิมสำหรับวัตถุ วัตถุจะต้องแสดงออกตามแบบแผน
การสนับสนุนชุดเครื่องมือ AJAX ได้รับการสนับสนุน. ไม่รองรับอย่างเต็มที่
กำลังดึงค่า ง่าย ยาก.
การดีซีเรียลไลซ์/การทำให้เป็นอนุกรม อัตโนมัติเต็มรูปแบบ นักพัฒนาจะต้องเขียน Javaโค้ดสคริปต์
รองรับเบราว์เซอร์ รองรับโดยเบราว์เซอร์ส่วนใหญ่ การแยกวิเคราะห์ XML ข้ามเบราว์เซอร์อาจเป็นเรื่องยุ่งยาก
การเข้ารหัส รองรับการเข้ารหัส UTF-8 เท่านั้น รองรับการเข้ารหัสที่หลากหลาย
ความสามารถในการแสดงผล ไม่มีความสามารถในการแสดงผล นำเสนอความสามารถในการแสดงผล
ขนาดเอกสาร เล็กกว่า XML มีขนาดใหญ่กว่า JSON
นามสกุลไฟล์ .json . Xml
ความปลอดภัย Less ปลอดภัย. ปลอดภัยกว่า JSON
อ่านง่าย ค่อนข้างง่าย ค่อนข้างยาก.
โค้งการเรียนรู้ ง่ายต่อการเรียนรู้ เส้นโค้งการเรียนรู้ที่สูงชัน
จองทางเว็บไซต์ https://www.json.org/json-en.html https://www.w3.org/TR/xml11/

ไวยากรณ์ JSON พื้นฐาน

{string:value, .......}

ตัวอย่างเดียวกันกับ JSON และ XML

ด้วย JSON

{"books":[
   {"name":"Anna Karenina", "author":"Leo Tolstoy"},
   {"name":"One Hundred Years of Solitude", "author":"Gabriel Garcia Marquez"},
   {"name":"The Great Gatsby", "author":"Scott Fitzgerald"},
   {"name":"Invisible Man", "author":"Ralph Ellison"}
]}

ด้วย XML

<?xml version = "1.0" encoding = "UTF-8" ?>
<books>
    <book>
        <name>Anna Karenina</name> 
        <author>Leo Tolstoy</author> 
    </book>
    <book>
        <name>One Hundred Years of Solitude</name> 
        <author>Gabriel Garcia Marquez</author> 
    </book>
    <book>
        <name>The Great Gatsby</name> 
        <author>Scott Fitzgerald</author> 
    </book>
    <book>
        <name>Invisible Man</name> 
        <author>Ralph Ellison</author>
    </book>
</books>

XML DTD

ดีทีดีคืออะไร?

ดีทีดี ย่อมาจาก Dอาชีพ Type Dความคมชัด มันกำหนดโครงสร้างของเอกสาร XML โดยใช้องค์ประกอบทางกฎหมายบางอย่าง XML DTD เป็นทางเลือก

กฎของดีทีดี

รายการต่อไปนี้แสดงกฎ DTD

  • หากมี DTD อยู่ จะต้องปรากฏที่จุดเริ่มต้นของเอกสาร (เฉพาะการประกาศ XML เท่านั้นที่สามารถปรากฏเหนือ DTD)
  • การประกาศองค์ประกอบจะต้องเริ่มต้นด้วย ! เครื่องหมาย.
  • ชื่อ DTD และประเภทองค์ประกอบขององค์ประกอบรูทจะต้องเหมือนกัน

ตัวอย่างของ DTD

ตัวอย่างของ DTD ภายใน:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE student [
<!ELEMENT student (firstname,lastname,school)>  
<!ELEMENT firstname (#PCDATA)>  
<!ELEMENT lastname (#PCDATA)>  
<!ELEMENT school (#PCDATA)> 
]>
<student>  
    <firstname>Mark</firstname>  
    <lastname>Wood</lastname>  
    <school>Hills College</school>  
</student>

ในตัวอย่างข้างต้น

  • !DOCTYPE นักเรียน บ่งบอกถึงจุดเริ่มต้นของการประกาศ DTD และ นักเรียน เป็นองค์ประกอบรากของเอกสาร XML
  • !องค์ประกอบนักเรียน ระบุว่า นักเรียน องค์ประกอบจะต้องมี ชื่อนามสกุล และ โรงเรียน องค์ประกอบ
  • !ELEMENT ชื่อจริง ระบุว่า FirstName องค์ประกอบเป็นประเภท #พีซีดาต้า (Pared Cตัวละคร ข้อมูล).
  • !ELEMENT นามสกุล ระบุว่า นามสกุล องค์ประกอบเป็นประเภท #พีซีดาต้า.
  • !ELEMENT โรงเรียน ระบุว่า โรงเรียน องค์ประกอบเป็นประเภท #พีซีดาต้า.

ตัวอย่างของ DTD ภายนอก:

<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE student SYSTEM "student.dtd">  
<student>  
    <firstname>Mark</firstname>  
    <lastname>Wood</lastname>  
    <school>Hills College</school>  
</student>  

โดยมีเนื้อหาไฟล์ DTD (student.dtd) ดังนี้

<!ELEMENT student (firstname,lastname,school)>  
<!ELEMENT firstname (#PCDATA)>  
<!ELEMENT lastname (#PCDATA)>  
<!ELEMENT school (#PCDATA)>

XML DOM

DOM คืออะไร?

DOM ย่อมาจาก Dอาชีพ Oขงเบ้ง Model กำหนดมาตรฐานในการเข้าถึงและจัดการเอกสาร XML DOM มีโครงสร้างแบบลำดับชั้น

ตัวอย่างของ DOM

ลองพิจารณาเอกสาร XML ด้านล่าง

<?xml version="1.0" encoding="UTF-8" ?>  
<school>
    <student>  
        <name>
            <first_name>Alex</first_name>  
            <last_name>Clarke</last_name>  
        </name>
        <age>14</age>  
        <address>No. 35, Flower Road, Leeds</address>  
    </student> 
</school>

โครงสร้างแบบต้นไม้ของไฟล์ XML ข้างต้นจะมีลักษณะดังภาพต่อไปนี้

XML DOM
ตัวอย่าง XML DOM

การตรวจสอบ XML

เอกสาร XML ที่มีรูปแบบดีคืออะไร

รูปร่างดี เอกสาร XML คือเอกสาร XML ที่มีไวยากรณ์ที่ถูกต้อง

เอกสาร XML ที่ถูกต้องคืออะไร

ถูกต้อง เอกสาร XML มีรูปแบบที่ดีและสอดคล้องกับกฎ DTD

เนมสเปซ XML

ทำไมต้องเนมสเปซ?

เนมสเปซช่วยหลีกเลี่ยงความขัดแย้งของชื่อองค์ประกอบ

การประกาศเนมสเปซ

ต่อไปนี้แสดงให้เห็นไวยากรณ์สำหรับการประกาศเนมสเปซ

<element xmlns:name="URL">

ในแถลงการณ์ข้างต้น

  • เค้ก xmlns คำหลักระบุจุดเริ่มต้นของเนมสเปซ
  • เค้ก พร้อมชื่อ เป็นคำนำหน้าของเนมสเปซ
  • เค้ก URL คือตัวระบุเนมสเปซ

ตัวอย่างของเนมสเปซ

ส่วนโค้ดต่อไปนี้แสดงตัวอย่างของเนมสเปซ

<?xml version="1.0" encoding="UTF-8" ?>  
<abt:about xmlns:abt="https://www.guru99.com/about-us.html">  
    <abt:founder>Krishna</abt:founder>  
    <abt:vision>Fun and Free Education for ALL</abt:vision>  
</abt:about>   

ตัวแก้ไข XML

มีตัวแก้ไข XML ให้เลือกหลายตัว โปรแกรมแก้ไขข้อความใดๆ (เช่น กระดาษจดบันทึก และอื่นๆ) สามารถใช้เป็นโปรแกรมแก้ไข XML ได้

รายการต่อไปนี้แสดงตัวแก้ไข XML ยอดนิยมบางส่วนในปี 2021

1) สมุดบันทึก XML

XML Notepad เป็นตัวแก้ไขโอเพ่นซอร์สสำหรับ XML มีมุมมองแบบต้นไม้และเอาต์พุต XSL ในบานหน้าต่างด้านซ้ายและข้อความโหนดทางด้านขวา มีหน้าต่างการแก้ไขข้อผิดพลาดที่ด้านล่าง

สถิติสำคัญ:

  • ประเภท – ตัวแก้ไข XML
  • ผู้พัฒนา – Microsoft
  • ระบบปฏิบัติการที่รองรับ – Microsoft Windows.
  • ราคา – ฟรี

Link: http://microsoft.github.io/XmlNotepad/


2) สไตลัสสตูดิโอ

Stylus Studio เป็น IDE ที่เขียนมา C++ สำหรับ Extensible Markup Language (XML) ช่วยให้ผู้ใช้สามารถแก้ไขและแปลงเอกสาร XML ข้อมูลเช่นการแลกเปลี่ยนข้อมูลทางอิเล็กทรอนิกส์ (EDI), CSV และข้อมูลเชิงสัมพันธ์

สถิติสำคัญ:

  • ประเภท – สภาพแวดล้อมการพัฒนาแบบรวม (IDE) สำหรับ XML
  • ผู้พัฒนา – โปรเกรส ซอฟต์แวร์ คอร์ปอเรชั่น
  • ระบบปฏิบัติการที่รองรับ – Microsoft Windows.
  • ราคา – ชำระเงิน (โปรดดูราคาล่าสุดจากเว็บไซต์ด้านล่าง) มีให้ทดลองใช้ฟรี

Link: http://www.stylusstudio.com/


3) Altova XMLSpy

XMLSpy นั้นมีการทำตลาดเป็นหลักในฐานะ JSON และ XML Editor โดยมีตัวออกแบบและตัวแก้ไข schema ในตัว รวมถึง Visual Studio และ Eclipse บูรณาการ

สถิติสำคัญ:

  • ประเภท – ตัวแก้ไข XML
  • ผู้พัฒนา – Altova
  • ระบบปฏิบัติการที่รองรับ – Microsoft Windows.
  • ราคา – ชำระเงิน (โปรดดูราคาล่าสุดจากเว็บไซต์ด้านล่าง) มีให้ทดลองใช้ฟรี

Link:https://www.altova.com/xmlspy-xml-editor


4) ตัวแก้ไข XML ของออกซิเจน

Oxygen XML เป็นตัวแก้ไขข้ามแพลตฟอร์มที่พัฒนาขึ้นมา Javaช่วยตรวจสอบความถูกต้องของ schema เช่น DTD, W3C XML Schema, RELAX NG, Schematron, NRL และ NVDL

สถิติสำคัญ:

  • ประเภท – ตัวแก้ไข XML
  • ผู้พัฒนา – Syncบริษัท อาร์โอ ซอฟท์ จำกัด
  • ระบบปฏิบัติการที่รองรับ – Windows, Linux และ Mac OS X
  • ราคา – ชำระแล้ว (โปรดดูราคาล่าสุดจากเว็บไซต์ด้านล่าง

Link:https://www.oxygenxml.com/


5) ขยายขนาด

Xmplify XML Editor มอบสภาพแวดล้อมการแก้ไขที่รับรู้ XML อย่างสมบูรณ์พร้อมอัตโนมัติตาม DTD และ XML Schema การตรวจสอบเอกสารอัตโนมัติ ฯลฯ

สถิติสำคัญ:

  • ประเภท – ตัวแก้ไข XML
  • ผู้พัฒนา – โมโซ คอร์ปอเรชั่น
  • ระบบปฏิบัติการที่รองรับ – Mac OS
  • ราคา – ชำระแล้ว (โปรดดูราคาล่าสุดจากเว็บไซต์ด้านล่าง

Link: http://xmplifyapp.com/

ตัวแยกวิเคราะห์ XML

ตัวแยกวิเคราะห์ XML คือไลบรารีซอฟต์แวร์ที่มีอินเทอร์เฟซเพื่อทำงานกับเอกสาร XML ตรวจสอบว่ารูปแบบของเอกสาร XML ถูกต้องหรือไม่ parsers บางตัวสามารถตรวจสอบความถูกต้องของเอกสาร XML ได้ เบราว์เซอร์สมัยใหม่มาพร้อมกับตัวแยกวิเคราะห์ XML

แซ็กโซโฟน

แซ็กโซโฟน ย่อมาจาก SImple Aพีไอสำหรับ Xมล. มันเป็น application pโรแกรม iอินเตอร์เฟซ (API) สำหรับการแยกวิเคราะห์เอกสาร XML พวกเขาทำงานคล้ายกับตัวจัดการเหตุการณ์ใน Java.

ซึ่งแตกต่างจาก DOM, SAX เป็นตัวอย่างของตัวแยกวิเคราะห์ XML ตามเหตุการณ์

ต่อไปนี้เป็นข้อแตกต่างที่สำคัญบางประการระหว่าง SAX และ DOM

แซ็กโซโฟน DOM
หมายถึง API อย่างง่ายสำหรับ XML โมเดลวัตถุเอกสาร
ประเภทของพาร์เซอร์ ตามเหตุการณ์ อิงตามวัตถุ
อ่านและเขียน XML อ่านอย่างเดียว ทั้งอ่านทั้งเขียน
แทรก/อัพเดต/ลบโหนด ไม่สามารถแทรก/อัปเดต/ลบโหนดได้ สามารถแทรก/อัพเดต/ลบโหนดได้
ประสิทธิภาพของหน่วยความจำ ประสิทธิภาพของหน่วยความจำที่ดี แตกต่างกันไป
ความเร็ว ช้ากว่า DOM Parser เร็วกว่า SAX Parser
เหมาะสำหรับ ไฟล์ขนาดเล็ก ไฟล์ขนาดใหญ่

การเชื่อมโยงข้อมูล XML

การผูกข้อมูล XML คือการแสดงข้อมูลในเอกสาร XML ในรูปแบบออบเจ็กต์ทางธุรกิจในหน่วยความจำของคอมพิวเตอร์

มีสามวิธีในการผูกข้อมูล XML

  • การเชื่อมโยงข้อมูลตาม XML schema: คลาส XML ที่สอดคล้องกันจะถูกสร้างขึ้นตามสคีมา
  • การผูกข้อมูลตามคลาส: สคีมา XML ที่สอดคล้องกันถูกสร้างขึ้นตามคลาส
  • การเชื่อมโยงข้อมูลตามการทำแผนที่: โดยอธิบายว่าสคีมา XML ที่มีอยู่แมปกับชุดคลาสอย่างไร (และในทางกลับกัน)

มีเฟรมเวิร์กการผูกข้อมูล XML ด้วย

ตัวอย่าง:

การผูกข้อมูล XML เป็นเรื่องง่ายด้วยเฟรมเวิร์ก เฟรมเวิร์กการผูกข้อมูลจะสร้างโค้ดจำนวนมากให้กับคุณ คุณต้องฟีดในสคีมา DTD หรือ XML

XML Schema

XML คี (ยังเป็นที่รู้จักกันในนาม คำนิยามสคีมา XML or xsd) ใช้เพื่ออธิบายโครงสร้างเอกสาร XML มันเป็นทางเลือกแทน DTD

ทำไมสคีมาจึงมีความสำคัญ?

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

XML Schema แตกต่างจาก DTD อย่างไร

การเปรียบเทียบต่อไปนี้แสดงให้เห็นว่า XSD (XML Schema) แตกต่างจาก DTD อย่างไร

DTD xsd
หมายถึง นิยามประเภทเอกสาร คำนิยาม XML Schema
ขยาย ไม่สามารถขยายได้ ซึ่งขยายออกได้
ควบคุมโครงสร้าง XML Less ควบคุม ควบคุมได้มากขึ้น
ประเภทข้อมูลที่รองรับ ไม่ได้รับการสนับสนุน ที่สนับสนุน
การสนับสนุนเนมสเปซ ไม่ได้รับการสนับสนุน ที่สนับสนุน

ส่วนโค้ดต่อไปนี้แสดงตัวอย่างของรูปแบบ XML

xs:schema xmlns:xs = "http://www.w3.org/2001/XMLSchema">
    <xs:element name = "employee">
        <xs:complexType>
            <xs:sequence>
                <xs:element name = "firstname" type = "xs:string" />
                <xs:element name = "lastname" type = "xs:string" />
                <xs:element name = "phone" type = "xs:int" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

ข้อดีของเอ็กซ์เอ็มแอล

ที่นี่ข้อดี/ประโยชน์ของ XML:

  • ทำให้การขนส่งและแบ่งปันข้อมูลเป็นเรื่องง่าย
  • XML ปรับปรุงการแลกเปลี่ยนข้อมูลระหว่างแพลตฟอร์มต่างๆ
  • เป็นภาษามาร์กอัปซึ่งเป็นชุดอักขระหรือ/และสัญลักษณ์ที่อยู่ในเอกสารข้อความ
  • XML ระบุว่าเอกสาร XML ควรมีลักษณะอย่างไรหลังจากแสดงแล้ว
  • ช่วยให้กระบวนการเปลี่ยนแพลตฟอร์มง่ายขึ้น
  • มันช่วยเพิ่มความพร้อมของข้อมูล
  • รองรับเอกสารหลายภาษาและ Unicode
  • ให้การเรียนรู้และเขียนโค้ดที่ค่อนข้างง่าย
  • เป็นภาษามาร์กอัปซึ่งเป็นชุดอักขระหรือ/และสัญลักษณ์ที่อยู่ในเอกสารข้อความ
  • ดำเนินการตรวจสอบความถูกต้องโดยใช้ DTD และ Schema
  • ทำให้สามารถขนส่งเอกสารข้ามระบบและแอปพลิเคชันได้ ด้วยความช่วยเหลือของ XML คุณสามารถแลกเปลี่ยนข้อมูลระหว่างแพลตฟอร์มต่างๆ ได้อย่างรวดเร็ว
  • XML แยกข้อมูลออกจาก HTML

ข้อเสียของ XML

นี่คือข้อเสีย/ข้อเสียของการใช้ XML:

  • XML ต้องใช้แอปพลิเคชันการประมวลผล
  • รูปแบบทางโครงสร้างของ XML คล้ายคลึงกับรูปแบบการส่งข้อมูลแบบ "ข้อความ" ทางเลือกอื่น ซึ่งบางครั้งก็ทำให้สับสนได้
  • ไม่มีการสนับสนุนประเภทข้อมูลที่แท้จริง
  • ไวยากรณ์ XML ซ้ำซ้อน
  • ไม่อนุญาตให้ผู้ใช้สร้างแท็กของเขา

สรุป

  • XML ย่อมาจาก eXtensible Markup Language XML คือภาษา (ไม่ใช่ภาษาการเขียนโปรแกรม) ที่ใช้มาร์กอัปและสามารถขยายได้
  • เป้าหมายหลักคือการขนส่งข้อมูล ไม่ใช่เพื่อแสดงข้อมูล
  • XML 1.1 เป็นเวอร์ชันล่าสุด อย่างไรก็ตาม XML 1.0 ยังเป็นเวอร์ชันที่ใช้มากที่สุด
  • แท็กทำงานเป็นคู่ยกเว้นการประกาศ
  • แท็กเปิด + เนื้อหา + แท็กปิด = องค์ประกอบ
  • เอนทิตีเป็นวิธีการแสดงอักขระพิเศษ
  • DTD ย่อมาจาก Document Type Definition มันกำหนดโครงสร้างของเอกสาร XML โดยใช้องค์ประกอบทางกฎหมายบางอย่าง XML DTD เป็นทางเลือก
  • DOM ย่อมาจาก Document Object Model กำหนดลักษณะมาตรฐานในการเข้าถึงและจัดการเอกสาร XML
  • เอกสาร XML ที่มีรูปแบบดีคือเอกสาร XML ที่มีไวยากรณ์ที่ถูกต้อง
  • เอกสาร XML ที่ถูกต้องมีรูปแบบที่ดีและสอดคล้องกับกฎ DTD
  • เนมสเปซช่วยหลีกเลี่ยงความขัดแย้งของชื่อองค์ประกอบ