กฎการเขียน xml ดูว่า "XML" ในพจนานุกรมอื่นๆ คืออะไร จุดแข็งและจุดอ่อน

XML มีวัตถุประสงค์เพื่อใช้กันอย่างแพร่หลาย อักขระไม่จำกัดเฉพาะชุดอักขระ ASCII 7 บิต อักขระที่อนุญาตใน XML ประกอบด้วยอักขระควบคุม ASCII สามตัว อักขระ ASCII ปกติทั้งหมด และอักขระ Unicode อื่นๆ เกือบทั้งหมด

ชื่อ.

ใน XML ชื่อทั้งหมดต้องขึ้นต้นด้วยตัวอักษร ขีดล่าง (_) หรือโคลอน (:) และต่อด้วยอักขระชื่อที่ถูกต้องเท่านั้น ได้แก่ ตัวอักษรที่รวมอยู่ในส่วนอักขระ Unicode เลขอารบิก ขีดกลาง และสัญลักษณ์ . อย่างไรก็ตาม ชื่อไม่สามารถขึ้นต้นด้วยสตริง xml ไม่ว่าในกรณีใด ชื่อที่ขึ้นต้นด้วยอักขระเหล่านี้สงวนไว้สำหรับใช้งานโดย W3C ต้องจำไว้ว่าเนื่องจากตัวอักษรไม่ได้จำกัดอยู่เพียงอักขระ ASCII เท่านั้น คำจากภาษาแม่ของคุณจึงสามารถใช้เป็นชื่อได้

โครงสร้างเอกสาร XML

เอกสาร XML ใด ๆ ประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:

  • อารัมภบททางเลือก
  • เนื้อความของเอกสาร
  • บทส่งท้ายเพิ่มเติมที่ตามหลังแผนผังองค์ประกอบ

มาดูรายละเอียดแต่ละส่วนกันดีกว่า

อารัมภบทของเอกสาร XML

เอกสาร XML เริ่มต้นด้วยอารัมภบท อารัมภบทประกอบด้วยคำแนะนำบางอย่างสำหรับตัวแยกวิเคราะห์ XML และแอปพลิเคชัน

อารัมภบทประกอบด้วยหลายส่วน:

  1. การประกาศ XML เผื่อเลือกที่อยู่ระหว่างอักขระ- โฆษณาประกอบด้วย:
    • เครื่องหมาย xml และหมายเลขเวอร์ชันของข้อกำหนด XML
    • ข้อบ่งชี้ของการเข้ารหัสอักขระ (การเข้ารหัส) ที่ใช้เขียนเอกสาร (โดยค่าเริ่มต้น encoding="UTF-8");
    • พารามิเตอร์แบบสแตนด์อโลนซึ่งสามารถรับค่า "yes" หรือ "no" (โดยค่าเริ่มต้น standalone="yes" ) ค่า "ใช่" บ่งชี้ว่าเอกสารประกอบด้วยการประกาศองค์ประกอบที่จำเป็นทั้งหมด และ "ไม่ใช่" บ่งชี้ว่าจำเป็นต้องมี DTD ภายนอก

    ทั้งหมดนี้รวมกันอาจมีลักษณะเช่นนี้:

    .

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

  2. ความคิดเห็น
  3. คำสั่งการประมวลผล
  4. สัญลักษณ์ช่องว่าง
  5. ไม่จำเป็น การประกาศประเภทเอกสาร, DTD (Document Type Declaration) ซึ่งอยู่ระหว่างอักขระและขยายได้หลายบรรทัด ส่วนนี้จะประกาศแท็กที่ใช้ในเอกสาร หรือจัดให้มีลิงก์ไปยังไฟล์ซึ่งมีการบันทึกการประกาศดังกล่าว

หลังจาก การประกาศประเภทเอกสารความคิดเห็น คำสั่งการประมวลผล และอักขระช่องว่างอาจตามมาด้วย

เนื่องจากทุกส่วนเหล่านี้เป็นทางเลือก คุณจึงสามารถละเว้นอารัมภบทได้

เนื้อความของเอกสาร XML

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

ชื่อขององค์ประกอบรูทถือเป็นชื่อของเอกสารทั้งหมด และระบุไว้ในส่วนที่สองของอารัมภบทหลังคำว่า Doctype หากคำจำกัดความ DTD อยู่ในเอกสาร XML จะถูกวางไว้ในวงเล็บเหลี่ยมหลังชื่อขององค์ประกอบรูท:

แต่โดยปกติแล้ว DTD จะถูกกำหนดไว้สำหรับเอกสาร XML หลายรายการในคราวเดียว ในกรณีนี้จะสะดวกที่จะเขียนแยกจากเอกสารแล้วแทนที่จะเขียนวงเล็บเหลี่ยมคำใดคำหนึ่ง System หรือ Public ตามด้วยที่อยู่ในรูปแบบของ URI (Uniform Resource Identifier) ​​​​ของไฟล์ด้วย คำจำกัดความของ DTD เพื่อวัตถุประสงค์ในทางปฏิบัติทั้งหมด URI จะถือว่าเทียบเท่ากับ URL แม้ว่าโดยหลักการแล้วอาจเป็นชื่อที่ไม่ซ้ำก็ได้ก็ตาม ตัวอย่างเช่น คำจำกัดความ DTD อาจมีลักษณะดังนี้:

เนมสเปซ XML

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

ในอนาคต ชื่อของแท็กและคุณลักษณะที่เราต้องการกำหนดให้กับเนมสเปซ "http://URI_namespace" จะขึ้นต้นด้วย ns เช่น:

โนโวซีบีสค์.

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

ชื่อพร้อมกับคำนำหน้าเรียกว่าชื่อขยายหรือมีคุณสมบัติ ส่วนของชื่อที่เขียนหลังเครื่องหมายทวิภาคเรียกว่าส่วนท้องถิ่นของชื่อ

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

เราจะเริ่มต้นตามปกติด้วยทฤษฎีมาดูกันว่าเป็นภาษาประเภทใดทำไมจึงดีใช้อย่างไรและใช้งานที่ไหน

คำจำกัดความภาษา XML

XML (ภาษามาร์กอัปแบบขยายได้) เป็นภาษามาร์กอัปข้อมูลสากลและขยายได้ โดยไม่ขึ้นกับระบบปฏิบัติการและสภาพแวดล้อมการประมวลผล Xml ใช้เพื่อนำเสนอข้อมูลบางอย่างในรูปแบบของโครงสร้าง และคุณสามารถพัฒนาโครงสร้างนี้ด้วยตนเองหรือปรับแต่งสำหรับโปรแกรมเฉพาะหรือบริการบางอย่างได้ นั่นคือสาเหตุที่ภาษานี้เรียกว่าขยายได้และนี่คือข้อได้เปรียบหลักซึ่งมีคุณค่ามาก

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

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

ตัวอย่างเช่น ครั้งหนึ่งฉันเคยมีหน้าที่เขียนบริการบางอย่างที่ควรส่งคืนข้อมูลในรูปแบบ xml เมื่อมีการร้องขอ เช่น การพัฒนาส่วนเซิร์ฟเวอร์ของแอปพลิเคชันประเภทหนึ่ง และฉันไม่รู้ว่าไคลเอ็นต์ใดที่จะประมวลผลข้อมูลนี้เขียนไว้ และฉันเขียนบริการที่ส่งคืนข้อมูลในรูปแบบ xml เพียงเท่านี้แอปพลิเคชันก็ทำงานได้อย่างสมบูรณ์ . และนี่เป็นเพียงตัวอย่างที่ฉันต้องรับมือ แต่ตอนนี้ ลองจินตนาการดูว่ามีองค์กรต่างๆ กี่องค์กรที่ทำงานร่วมกันและพัฒนาซอฟต์แวร์และแลกเปลี่ยนข้อมูลอย่างมีสติ และฉันจะไม่แปลกใจเลยที่ข้อมูลนี้จะอยู่ในรูปแบบ xml

ตัวอย่างเช่น ครั้งหนึ่งฉันเคยมีหน้าที่เขียนบริการบางอย่างที่ควรส่งคืนข้อมูลในรูปแบบ xml เมื่อมีการร้องขอ เช่น การพัฒนาส่วนเซิร์ฟเวอร์ของแอปพลิเคชันประเภทหนึ่ง และฉันไม่รู้ว่าไคลเอ็นต์ใดที่จะประมวลผลข้อมูลนี้เขียนไว้ และฉันเขียนบริการที่ส่งคืนข้อมูลในรูปแบบ xml เพียงเท่านี้แอปพลิเคชันก็ทำงานได้อย่างสมบูรณ์ . และนี่เป็นเพียงตัวอย่างที่ฉันต้องรับมือ แต่ตอนนี้ ลองจินตนาการดูว่ามีองค์กรต่างๆ กี่องค์กรที่ทำงานร่วมกันและพัฒนาซอฟต์แวร์และแลกเปลี่ยนข้อมูลอย่างมีสติ และฉันจะไม่แปลกใจเลยที่ข้อมูลนี้จะอยู่ในรูปแบบ xml

นอกจากนี้ ฉันเคยต้องจัดเก็บข้อมูล xml ในฐานข้อมูล MS SQL 2008 เพื่อแสดงข้อมูลนี้ได้ดีขึ้นและแลกเปลี่ยนระหว่างเซิร์ฟเวอร์และส่วนไคลเอนต์ของแอปพลิเคชัน เราได้กล่าวถึงเรื่องนี้ในบทความ - Transact-sql - การทำงานกับ xml .

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

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

เรามาฝึกกันต่อ และฉันจะเขียนตัวอย่างทั้งหมดที่เราจะพิจารณาใน Notepad++ เท่านั้นเนื่องจากสะดวกมาก แต่ตอนนี้เราจะไม่พูดถึงเรื่องนี้เนื่องจากเราได้พูดคุยกันแล้วในบทความ - เหตุใด Notepad++ จึงดีสำหรับนักพัฒนามือใหม่

แท็ก XML

ภาษา XML ใช้แท็ก ( แท็กคำนึงถึงขนาดตัวพิมพ์) แต่ไม่ใช่แท็กเดียวกับใน html แต่เป็นแท็กที่คุณคิดขึ้นมาเอง แต่เอกสาร xml ก็มีโครงสร้างที่ชัดเจนเช่นกัน เช่น มีแท็กเปิดและแท็กปิด มีแท็กซ้อนกัน และแน่นอนว่ามีค่าอยู่ในแท็กเหล่านี้ กล่าวอีกนัยหนึ่ง สิ่งที่คุณต้องการสำหรับความรู้พื้นฐานเกี่ยวกับ xml ก็เพียงแค่ปฏิบัติตามกฎเหล่านี้ แท็กเปิด ปิด และค่ารวมกันเรียกว่าองค์ประกอบ และเอกสาร xml ทั้งหมดประกอบด้วยองค์ประกอบที่รวมกันเป็นโครงสร้างข้อมูล เอกสาร xml สามารถมีองค์ประกอบรูทได้เพียงองค์ประกอบเดียวเท่านั้น โปรดจำไว้ว่า เนื่องจากหากคุณเขียนองค์ประกอบรูทสององค์ประกอบ มันจะเป็นข้อผิดพลาด

และถึงเวลาที่จะยกตัวอย่างมาร์กอัป xml และตัวอย่างแรกในตอนนี้คือสำหรับไวยากรณ์:

<Начало элемента> <Начало вложенного элемента>ค่าองค์ประกอบที่ซ้อนกัน

อย่างที่คุณเห็นทุกอย่างค่อนข้างเรียบง่ายและอาจมีองค์ประกอบหลายอย่างซ้อนกันอยู่ภายใน

ตอนนี้ขอยกตัวอย่างเอกสาร xml จริง:

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

เล่ม 1 อีวาน แค่เล่ม1. เล่ม 2 เซอร์เกย์ แค่เล่ม 2 ครับ เล่ม 3 นิยาย เล่ม 3 เลย

โดยที่บรรทัดแรกคือคำประกาศของคำประกาศนั่นเอง เอกสารเอ็กซ์เอ็มแอลและจะต้องอ่านในการเข้ารหัส UTF-8

ข้อมูลนี้ที่ไม่มีการประมวลผลจะมีลักษณะ เช่น ในเบราว์เซอร์ (Mozilla Firefox) ดังต่อไปนี้:

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

สำหรับพื้นฐาน ฉันคิดว่านั่นก็เพียงพอแล้ว เพราะหากเราเจาะลึกเข้าไปใน XML มากขึ้นเรื่อยๆ และเทคโนโลยีทั้งหมดที่เกี่ยวข้องกับภาษานี้ บทความนี้ก็จะไม่มีวันสิ้นสุด นั่นคือทั้งหมดสำหรับวันนี้ ลาก่อน!

20. ภาษาสำหรับอธิบาย XML schema

แผนงาน DTD ข้อเสียของโครงการ DTD วงจร XDR องค์ประกอบและคุณลักษณะของโครงร่าง XDR

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

    อธิบายว่ามาร์กอัปคืออะไร

    อธิบายอย่างชัดเจนว่ามาร์กอัปหมายถึงอะไร

ภาษาคำอธิบายสคีมาที่รู้จักกันดีที่สุดมีดังต่อไปนี้:

    DTD (Document Type Definition) เป็นภาษาคำจำกัดความประเภทเอกสารที่แต่เดิมใช้เป็นภาษาในการอธิบายโครงสร้างของเอกสาร SGML

    XDR (ลดข้อมูล XML) เป็นภาษา XML schema ที่พัฒนาโดย Microsoft ซึ่งได้รับการสนับสนุนใน Internet Explorer เวอร์ชัน 4 และ 5

    XML Schema หรือเรียกง่ายๆ ว่า XSD (XML Schema Definition Language) เป็นคำแนะนำของ W3C ตั้งแต่ปี 2544

เรามาดูสองคนแรกให้ละเอียดยิ่งขึ้น ภาษาคำอธิบายวงจรที่สามครอบคลุมอยู่ในแล็บ 11

โครงการดีทีดี

สคีมา DTD มีเทมเพลตมาร์กอัปเอกสารที่ระบุการมีอยู่ ลำดับ และการจัดเรียงองค์ประกอบและคุณลักษณะในเอกสาร XML

ในแง่ของ DTD โมเดลเนื้อหาของเอกสาร XML สามารถอธิบายได้ดังต่อไปนี้:

แต่ละองค์ประกอบเอกสารสามารถมีประเภทใดประเภทหนึ่งต่อไปนี้:

ไวยากรณ์

ความคิดเห็น

ประกอบด้วยข้อมูลข้อความเท่านั้น

องค์ประกอบอื่นๆ

มีองค์ประกอบย่อยเท่านั้น

ผสม

ประกอบด้วยการรวมกันของข้อมูลข้อความและองค์ประกอบย่อย

ไม่มีสิ่งใดเลย

คุณลักษณะที่พบในแท็กเอกสารจะอธิบายแยกกันโดยใช้ไวยากรณ์:

element_nameattribute_name1 (ประเภท) default_value

…………………………………………………………………………………...

element_nameattribute_nameN (ประเภท) default_value >

ในกรณีนี้ แอ็ตทริบิวต์ใน DTD สามารถมีหนึ่งในสามประเภท:

  • แอตทริบิวต์ที่มีป้ายกำกับ

    คุณสมบัติที่มีการแจงนับ

นอกจากประเภทแอตทริบิวต์แล้ว คุณยังสามารถตั้งค่า modality ได้อีกด้วย:

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

หมายเลข CDATA #จำเป็น

วันที่ CDATA #จำเป็น

จาก CDATA #FIXED

สถานะ CDATA #โดยนัย>

หากองค์ประกอบนี้มีแอตทริบิวต์ที่แจกแจง คำอธิบายอาจมีลักษณะดังนี้:

หมายเลข ID #จำเป็น

จาก CDATA #จำเป็น

การแจ้งเตือน (ต่ำ | ปกติ | เร่งด่วน) "ปกติ">

แอตทริบิวต์องค์ประกอบที่มีป้ายกำกับสามารถมีได้สี่ประเภท:

สุดท้าย สามารถใช้ตัวบ่งชี้การเกิดลำดับต่อไปนี้ใน DTD:

เครื่องหมาย

ตัวอย่าง

คำอธิบาย

การใช้องค์ประกอบรายการติดต่อกัน

มีการใช้หนึ่งในสมาชิกรายการ

มีการใช้องค์ประกอบเดียวเท่านั้น

การใช้งานเสริม (0 หรือ 1 ครั้ง)

ใช้หนึ่งครั้งหรือมากกว่านั้น

ใช้งานเป็นศูนย์หรือหลายครั้ง

ตามตัวอย่าง นี่คือไดอะแกรม DTD ที่อธิบายโครงสร้างของกล่องจดหมายอิเล็กทรอนิกส์:

เอกสาร XML ต้นฉบับที่ตรงตามสคีมานี้อาจมีลักษณะเช่นนี้:

[ป้องกันอีเมล]

[ป้องกันอีเมล]

อีกครั้ง:

[ป้องกันอีเมล]

[ป้องกันอีเมล]

เตือน

[ป้องกันอีเมล]

เตือนฉันเกี่ยวกับการประชุม

ให้ความสนใจกับบรรทัดที่ 2 ของเอกสาร ซึ่งระบุลิงก์ภายนอกไปยังไฟล์ที่มีสคีมา DTD

โดยพื้นฐานแล้ว DTD อนุญาตให้ใช้สองวิธีในเอกสาร XML

การประกาศสคีมาภายใน:

ประกาศสคีมาภายนอก:

โดยสรุป เราชี้ให้เห็นข้อเสียของแผน DTD ดังต่อไปนี้:

    ไม่ใช่อินสแตนซ์ XML มันต้องเรียนรู้ภาษาที่แตกต่างไปจากเดิมอย่างสิ้นเชิง

    พวกเขาไม่ได้ให้การควบคุมประเภทข้อมูลยกเว้นข้อมูลข้อความธรรมดามาก

    ไม่ใช่อินสแตนซ์ XML ดังนั้นจึงไม่สามารถขยายหรือแปลงเป็นภาษามาร์กอัปอื่น ๆ เช่น HTML หรือ DHTML ได้อย่างง่ายดาย

    ไม่ให้การสนับสนุนเนมสเปซ XML

วงจรเอ็กซ์ดีอาร์

XML-Data เป็นชื่อเต็มของภาษาสคีมาของ Microsoft และ XML-DataReduced เป็น "ส่วนหนึ่ง" ของคำแนะนำฉบับเต็ม สคีมา XDR เป็นอินสแตนซ์ของ XML เช่น สอดคล้องกับกฎไวยากรณ์และมาตรฐาน XML ทั้งหมด

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

องค์ประกอบรูทในสคีมา XDR จะเป็นองค์ประกอบสคีมาเสมอ:

ชื่อ = "schema_name" xmlns = "โกศ:schemas-microsoft-com:xml-data"

xmlns:dt="urn:schemas-microsoft-com:datatypes">

<-- Объявления других элементов -->

องค์ประกอบ ElementType มีไวยากรณ์:

content="(ว่าง | texOnly | eltOnly | ผสม)">

dt: พิมพ์ "ประเภทข้อมูล"

รุ่น = "(เปิด | ปิด)"

สั่งซื้อ = "(หนึ่ง | seq | หลาย)"

องค์ประกอบ ElementType สามารถมีคุณสมบัติดังต่อไปนี้:

ชื่อแอตทริบิวต์

คำอธิบาย

ชื่อองค์ประกอบ

ชนิดข้อมูลรายการ

สามารถรับค่า:

เปิด - อนุญาต ใช้องค์ประกอบที่ไม่ได้กำหนดไว้ในสคีมา

ปิด – ห้ามมิให้ใช้องค์ประกอบที่ไม่ได้กำหนดไว้ในสคีมา

ลำดับขององค์ประกอบลูกในอินสแตนซ์ XML ค่าที่ถูกต้อง:

หนึ่ง – ถือว่ามีเอกสารหนึ่งฉบับ

many – จำนวนองค์ประกอบเท่าใดก็ได้ในลำดับใดก็ได้

seq – องค์ประกอบถูกระบุตามลำดับที่ระบุอย่างเคร่งครัด

ต่อไปนี้สามารถใช้เป็นองค์ประกอบลูกสำหรับ ElementType:

ชื่อองค์ประกอบ

คำอธิบาย

ประกาศองค์ประกอบลูก

ให้คำอธิบายของ ElementType

ให้ประเภทข้อมูลขององค์ประกอบ ElementType

กำหนดลำดับขององค์ประกอบ

กำหนดคุณลักษณะ

กำหนดข้อมูลเกี่ยวกับ AttributeType ขององค์ประกอบลูก

ไวยากรณ์ที่ใช้ในการประกาศแอตทริบิวต์คือ:

ค่าเริ่มต้น = "ค่าเริ่มต้น-มูลค่า"

dt:type="ชนิดดั้งเดิม"

dt:values="แจกแจง-ค่า"

จำเป็น = "(ใช่|ไม่)"

ในทางกลับกัน องค์ประกอบ AttributeType สามารถมีแอตทริบิวต์ต่อไปนี้ได้:

ความหมาย

คำอธิบาย

ค่าเริ่มต้น

ประเภทใดประเภทหนึ่งต่อไปนี้:

เอนทิตี, เอนทิตี, การแจงนับ, id, idref, nmtoken, nmtokens, สัญกรณ์, สตริง

ค่าที่ถูกต้อง

ชื่อแอตทริบิวต์

บ่งชี้ว่าต้องมีแอตทริบิวต์อยู่ในคำอธิบาย

ไวยากรณ์สำหรับการอธิบายองค์ประกอบแอตทริบิวต์มีดังนี้:

ค่าเริ่มต้น = "ค่าเริ่มต้น-มูลค่า"

type="แอตทริบิวต์ประเภท"

และค่าที่เป็นไปได้อาจเป็น:

ความหมาย

XML (Extensible Markup Language) เป็นภาษามาร์กอัปเอกสารที่ได้รับจาก SGML ใหม่ ซึ่งช่วยให้คุณสามารถจัดโครงสร้างข้อมูลประเภทต่างๆ ได้โดยใช้ชุดคำสั่งที่กำหนดเอง นักพัฒนาแอปพลิเคชันอินเทอร์เน็ตที่พยายามใช้เทคโนโลยีใหม่ในทางปฏิบัติอาจสนใจคำถามเฉพาะที่เกี่ยวข้องกับปัญหาในการสร้างการประมวลผลเอกสาร XML และการแสดงเอกสารเหล่านั้นทางฝั่งไคลเอ็นต์ บทความนี้ให้แนวคิดสั้น ๆ ว่าเอกสาร XML คืออะไรและเหตุใดจึงจำเป็นและแสดงตัวอย่างเชิงปฏิบัติที่เรียบง่าย แต่น่าเสียดายที่มีกลไกที่อธิบายไว้เล็กน้อยในการประมวลผล

XML คืออะไร

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

  • ประการแรก เทคโนโลยีนี้อาจมีประโยชน์สำหรับนักพัฒนาระบบข้อมูลที่ซับซ้อน โดยมีแอปพลิเคชันจำนวนมากเชื่อมต่อกันด้วยกระแสข้อมูลของโครงสร้างต่างๆ ในกรณีนี้ เอกสาร XML ทำหน้าที่เป็นรูปแบบสากลสำหรับการแลกเปลี่ยนข้อมูลระหว่างแต่ละองค์ประกอบของโปรแกรมขนาดใหญ่
  • XML เป็นมาตรฐานพื้นฐานสำหรับภาษาคำอธิบายทรัพยากรใหม่ RDF ซึ่งช่วยให้ปัญหาต่างๆ บนเว็บที่เกี่ยวข้องกับการค้นหาข้อมูลที่ถูกต้อง การควบคุมเนื้อหาของทรัพยากรเครือข่าย การสร้างห้องสมุดดิจิทัล ฯลฯ ง่ายขึ้น
  • ภาษา XML ช่วยให้คุณสามารถอธิบายข้อมูลทุกประเภท และใช้เพื่อแสดงข้อมูลเฉพาะทาง เช่น สูตรทางเคมี คณิตศาสตร์ สูตรกายภาพ ใบสั่งยา โน้ตดนตรี ฯลฯ
  • ซึ่งหมายความว่า XML สามารถทำหน้าที่เป็นส่วนเสริมที่มีประสิทธิภาพให้กับ HTML สำหรับการกระจายข้อมูลที่ "ไม่เป็นมาตรฐาน" บนเว็บ บางทีในอนาคตอันใกล้นี้ XML จะแทนที่ HTML โดยสมบูรณ์อย่างน้อยก็มีความพยายามครั้งแรกในการรวมทั้งสองภาษานี้ไว้แล้ว (ข้อกำหนด)
  • เอกสาร XML สามารถใช้เป็นรูปแบบข้อมูลระดับกลางในระบบสามระดับได้ โดยทั่วไป รูปแบบการโต้ตอบระหว่างแอปพลิเคชันและเซิร์ฟเวอร์ฐานข้อมูลจะขึ้นอยู่กับ DBMS เฉพาะและภาษา SQL ที่ใช้ในการเข้าถึงข้อมูล หากผลลัพธ์การสืบค้นแสดงในรูปแบบข้อความสากล ลิงก์ DBMS ดังกล่าวจะกลายเป็น "โปร่งใส" สำหรับแอปพลิเคชัน นอกจากนี้ ในวันนี้ W3C ได้เสนอข้อกำหนดสำหรับภาษาคิวรีฐานข้อมูลใหม่ XQL ซึ่งในอนาคตอาจกลายเป็นทางเลือกแทน SQL
  • การใช้สไตล์ชีต (XSL) ช่วยให้คุณสามารถจัดเตรียมการแสดงเอกสาร XML โดยไม่ขึ้นกับอุปกรณ์เอาต์พุต
  • สามารถใช้ XML ในแอปพลิเคชันทั่วไปเพื่อจัดเก็บและประมวลผลข้อมูลที่มีโครงสร้างในรูปแบบเดียว

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

จะสร้างเอกสาร XML ได้อย่างไร?

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

การประชุมทางธุรกิจที่สำคัญ เราต้องพบกับ อีวาน อิวาโนวิชหลังจากโทรหาเขาทางโทรศัพท์ 123-12-12 ... โทรกลับบ้าน 124-13-13

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

เมื่อสร้างรูปแบบใหม่จำเป็นต้องคำนึงถึงข้อเท็จจริงที่ว่าโดยหลักการแล้วไม่สามารถมีเอกสารที่ "เขียนด้วย XML" ได้ - ไม่ว่าในกรณีใดผู้เขียนเอกสารสำหรับมาร์กอัปจะใช้ภาษาตามมาตรฐาน XML ( ภาษาที่เรียกว่า XML ที่ได้มาจาก) แต่ไม่ใช่ XML เอง ดังนั้นเมื่อบันทึกไฟล์ที่สร้างขึ้นคุณสามารถเลือกนามสกุลที่เหมาะสมกับชื่อได้ (เช่น noteML)

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

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

ขั้นตอนต่อไปของการส่งเสริมเอกสารคือเวอร์ชันการทำงานของข้อกำหนด ซึ่งรวบรวมและแก้ไขในภายหลังโดยคณะทำงานที่สร้างขึ้นเป็นพิเศษ (คณะทำงาน) ซึ่งรวมถึงตัวแทนของบริษัทที่สนใจในแนวคิดนี้ การเปลี่ยนแปลงทั้งหมดที่ทำกับเอกสารนี้จำเป็นต้องเผยแพร่บนเซิร์ฟเวอร์สมาคม www.w3.org และจนกว่าเวอร์ชันที่ใช้งานจริงจะกลายเป็นคำแนะนำ จึงจะทำหน้าที่เป็น "ดาวนำทาง" สำหรับนักพัฒนาเท่านั้น ซึ่งบริษัทสามารถตรวจสอบแผนได้ แต่ ไม่ควรใช้ในการพัฒนาซอฟต์แวร์

หากทั้งสองฝ่ายเห็นพ้องในประเด็นหลักทั้งหมดและมีการเปลี่ยนแปลงที่สำคัญกับเอกสาร เวอร์ชันการทำงานจะกลายเป็นข้อเสนอแนะที่เสนอ และหลังจากการลงคะแนนเสียงโดยสมาชิกของคณะทำงาน ก็สามารถกลายเป็นคำแนะนำอย่างเป็นทางการของ W3C ซึ่งสอดคล้องกับสถานะของ มาตรฐานใน WWW.

เครื่องกำเนิด XML

เอกสาร XML สามารถใช้เป็นรูปแบบกลางสำหรับการถ่ายโอนข้อมูลจากแอปพลิเคชันหนึ่งไปยังอีกแอปพลิเคชันหนึ่ง (เช่น เป็นผลมาจากการสืบค้นฐานข้อมูล) ดังนั้นบางครั้งเนื้อหาจึงถูกสร้างขึ้นและประมวลผลโดยอัตโนมัติโดยโปรแกรม ไม่จำเป็นต้องสร้างเอกสาร XML ด้วยตนเองเสมอไป

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

เอกสาร XML ของเราอาจมีลักษณะดังนี้:

195.151.62.18 รับ /เบ็ดเตล็ด/ 200 195.209.248.12 รับ /soft.htm 200

โครงสร้างของเอกสารค่อนข้างง่าย - องค์ประกอบรูทในกรณีนี้คือองค์ประกอบบันทึก แต่ละเหตุการณ์ที่เกิดขึ้นจะถูกบันทึกในองค์ประกอบเหตุการณ์และอธิบายโดยใช้แอตทริบิวต์ (วันที่ - เวลาและผลลัพธ์ - ประเภทเหตุการณ์) และองค์ประกอบภายใน ( วิธีการ - วิธีการเข้าถึง, ip-from - แหล่งที่มาของที่อยู่, url-to - ทรัพยากรที่ร้องขอ, การตอบสนอง - รหัสการตอบสนอง) เอกสารนี้สามารถสร้างขึ้นได้ เช่น โดยโมดูลการรับรองความถูกต้องคำขอของระบบ และใช้โดยโปรแกรมประมวลผลข้อมูลการลงทะเบียน (โปรแกรมดูบันทึก)

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

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

ตัวอย่างเล็กๆ น้อยๆ สำหรับเอกสาร XML ของเรา:

บันทึกไฟล์นี้เป็น log.dtd และรวมบรรทัดใหม่ในเอกสาร XML:

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

เนมสเปซคืออะไร?

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

เพื่อแก้ไขสถานการณ์นี้ เราต้องกำหนดชื่อที่ไม่ซ้ำกันสำหรับองค์ประกอบและคุณลักษณะขององค์ประกอบโดยการ "เพิ่ม" คำนำหน้าที่เป็นสากลและไม่ซ้ำกันให้กับชื่อปกติ กลไก Namespaces ใช้สำหรับสิ่งนี้ (Namespaces ได้รับการอนุมัติอย่างเป็นทางการจาก W3C ในเดือนมกราคม 1999 และปัจจุบันเป็นส่วนหนึ่งของมาตรฐาน XML) ตามข้อกำหนดนี้ ในการกำหนด "ขอบเขต" ของแท็ก (อันที่จริง คำนี้ซึ่งใช้กันอย่างแพร่หลายในภาษาโปรแกรมทั่วไป ไม่สามารถใช้ได้กับ XML เนื่องจากไม่มีการกำหนดว่า "ขอบเขต" จะถูกสร้างขึ้นได้ ภายในเอกสาร XML ที่มีโครงสร้าง ) จำเป็นต้องกำหนดแอตทริบิวต์เฉพาะที่อธิบายชื่อขององค์ประกอบ โดยที่ตัววิเคราะห์เอกสารสามารถกำหนดได้ว่ากลุ่มของชื่อนั้นเป็นของกลุ่มใด (ตัวระบุ Namespace สามารถใช้เพื่ออธิบายชื่อเฉพาะขององค์ประกอบทั้งสอง และคุณลักษณะของพวกเขา) ในตัวอย่างสุดท้ายของเรา สามารถทำได้ดังนี้:

195.151.62.18

รับ

/เบ็ดเตล็ด/

200

195.209.248.12

รับ

/soft.htm

200

รับประกันความเป็นเอกลักษณ์ของแอตทริบิวต์ name โดยการใช้ตัวระบุทรัพยากรสากลบางตัว (เช่น URI หรือ ISBN) เป็นค่า

ข้อมูลทั้งหมดเกี่ยวกับการใช้ Namespace สามารถพบได้ในมาตรฐานนี้ ในอนาคต เพื่อให้ตัวอย่างง่ายขึ้น เราจะข้ามเนมสเปซ - คำอธิบาย

เครื่องมือ

กำลังประมวลผลเอกสาร XML

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

ในเดือนสิงหาคม พ.ศ. 2540 RFC 2376 ได้อนุมัติประเภท MIME สำหรับทรัพยากร XML: text/xml และ application/xml ดังนั้น เอกสาร XML สามารถส่งผ่าน HTTP และแสดงโดยผู้ดูในลักษณะเดียวกับหน้า HTML ทั่วไป ในการดำเนินการนี้ คุณต้องเปลี่ยนการกำหนดค่าเว็บเซิร์ฟเวอร์เล็กน้อย (ใน Apache - เพิ่มบรรทัด "text/xml xml ddt" ลงในไฟล์ mime.types) และในฝั่งไคลเอ็นต์จะมีเบราว์เซอร์ที่รองรับสไตล์ชีตหรือ JavaScript ปัจจุบัน เบราว์เซอร์เหล่านี้รวม Microsoft Internet Explorer 5 ซึ่งเป็นเบราว์เซอร์ตัวแรกที่รองรับข้อกำหนด XML 1.0 และสไตล์ชีต XSL เบราว์เซอร์ Amaya นำเสนอโดยสมาคมเพื่อการทดสอบโดยเฉพาะ () และรองรับมาตรฐาน W3C ที่พัฒนาขึ้นเกือบทั้งหมด นอกจากนี้ยังมีการวางแผนรองรับ XML สำหรับ Netscape Navigator เวอร์ชันในอนาคตด้วย

เอกสารวัตถุรุ่น DOM

หนึ่งในอินเทอร์เฟซที่ทรงพลังที่สุดสำหรับการเข้าถึงเนื้อหาของเอกสาร XML คือ DOM

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

ข้อความ ข้อความ

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

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

เพื่ออธิบายอินเทอร์เฟซสำหรับการเข้าถึงเนื้อหาของเอกสาร XML ข้อกำหนด DOM จะใช้ IDL ภาษาที่ไม่ขึ้นกับแพลตฟอร์ม และในการใช้งานจะต้อง "แปล" เป็นภาษาโปรแกรมเฉพาะ อย่างไรก็ตาม สิ่งนี้ทำโดยผู้สร้างตัววิเคราะห์เอง เราอาจไม่รู้อะไรเลยเกี่ยวกับวิธีการใช้งานอินเทอร์เฟซ - จากมุมมองของนักพัฒนาแอปพลิเคชัน DOM ดูเหมือนชุดของวัตถุที่มีวิธีการและคุณสมบัติบางอย่าง ในส่วนถัดไป เราจะมาดูโมเดลออบเจ็กต์ Microsoft Internet Explorer 5 กันอย่างรวดเร็ว ซึ่งสามารถเข้าถึงได้จากสคริปต์ Java และสคริปต์ VBScript



มีคำถามอะไรไหม?

แจ้งการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: