เหตุใดจึงจำเป็นต้องใช้รูปแบบข้อความ
รูปแบบข้อความสะดวกต่อการจัดเก็บข้อมูลเพราะทั้งโปรแกรมและมนุษย์สามารถสร้างและประมวลผลได้
ไฟล์ข้อความ (ไฟล์ในรูปแบบข้อความ) สามารถเปิด อ่าน และแก้ไขได้ในโปรแกรมแก้ไขข้อความที่หลากหลาย
หลายโปรแกรมใช้ไฟล์การกำหนดค่าแบบข้อความ แม้ว่ารูปแบบจะมีตัวเลขและค่าไบนารี (ใช่/ไม่ใช่) ก็ตาม
สิ่งนี้ทำให้โปรแกรมค่อนข้างซับซ้อนขึ้นเนื่องจากจำเป็นต้องแปลงจากข้อความเป็นรูปแบบภายในและในทางกลับกัน แต่ทำให้สามารถแก้ไขการกำหนดค่าด้วยตนเองโดยไม่ต้องใช้เครื่องมือกำหนดค่าในโปรแกรม
ตอนนี้ XML ใช้อยู่ที่ไหน
XML ถูกใช้ในด้านต่างๆ ของไอที อาจเป็นไฟล์คอนฟิกูเรชัน (พร้อมการตั้งค่าโปรแกรม) หรือไฟล์ที่ใช้ถ่ายโอนข้อมูลระหว่างโปรแกรม ใน Java หนึ่งในกรณีการใช้งานที่พบบ่อยที่สุดคือการกำหนดค่า Maven ซึ่งเป็นเครื่องมือสร้างอัตโนมัติ
โครงสร้างของเอกสาร XML
โครงสร้างทางกายภาพและทางตรรกะของเอกสาร XML จะถูกแยกออกจากกัน ในแง่ของโครงสร้างทางกายภาพ เอกสารประกอบด้วยเอนทิตีที่สามารถอ้างถึงเอนทิตีอื่นๆ
องค์ประกอบรากเพียงอย่างเดียวคือเอนทิตีของเอกสาร เอนทิตีคือส่วนที่เล็กที่สุดในเอกสาร เอนทิตีทั้งหมดมีชื่อและมีอักขระ
ในทางกลับกัน อักขระจะอยู่ในหนึ่งในสองประเภท: ข้อมูลอักขระหรือมาร์กอัป
มาร์กอัปรวมถึง:
- แท็กซึ่งแสดงถึงขอบเขตขององค์ประกอบ
- การประกาศและคำแนะนำในการประมวลผล รวมถึงคุณลักษณะต่างๆ
- การอ้างอิงเอนทิตี
- ความคิดเห็น;
- ลำดับอักขระที่ตัดส่วน CDATA
เอกสารประกอบด้วยองค์ประกอบ ข้อคิดเห็น การประกาศ การอ้างอิงเอนทิตี และคำแนะนำในการประมวลผล มาร์กอัปใช้เพื่อสร้างโครงสร้างทั้งหมดนี้ในเอกสาร
ส่วนประกอบทั้งหมดของเอกสารแบ่งออกเป็นอารัมภบทและองค์ประกอบรูท องค์ประกอบรูทเป็นส่วนที่จำเป็นและสำคัญของเอกสาร XML ในขณะที่อารัมภบทอาจไม่มีอยู่เลย องค์ประกอบรูทสามารถประกอบด้วยองค์ประกอบที่ซ้อนกัน ข้อมูลอักขระ และข้อคิดเห็น องค์ประกอบของเอกสารต้องซ้อนอย่างถูกต้อง: องค์ประกอบใด ๆ ที่เริ่มต้นภายในองค์ประกอบอื่นจะต้องสิ้นสุดภายในองค์ประกอบนั้นด้วย
สัญลักษณ์มาร์กอัป
มาร์กอัปจะขึ้นต้นด้วย<และลงท้ายด้วย>เสมอ
สัญลักษณ์<และ> (วงเล็บเหลี่ยม) และ& (เครื่องหมายแอมเปอร์แซนด์) มีบทบาทพิเศษ วงเล็บมุมระบุขอบเขตขององค์ประกอบ คำแนะนำในการประมวลผล และลำดับอื่นๆ และเครื่องหมายและช่วยให้เราแทนที่ข้อความด้วยเอนทิตี
การประกาศ XML
การประกาศ XML ระบุรุ่นของภาษาที่ใช้ในการเขียนเอกสาร ข้อกำหนด XML ระบุว่าให้เริ่มเอกสารด้วยการประกาศ XML เนื่องจากการตีความเนื้อหาเอกสารที่เหมาะสมขึ้นอยู่กับเวอร์ชันของภาษา
ในเวอร์ชันแรกของภาษา (1.0) การประกาศนี้เป็นทางเลือก แต่จำเป็นในเวอร์ชันที่ใหม่กว่า การประกาศที่ขาดหายไปจะถือว่าหมายถึงเวอร์ชัน 1.0 การประกาศอาจมีข้อมูลเกี่ยวกับการเข้ารหัสเอกสาร
ตัวอย่าง:
แท็ก
แท็กคือโครงสร้างมาร์กอัปที่มีชื่อขององค์ประกอบ มีแท็กเริ่มต้นและแท็กสิ้นสุด นอกจากนี้ยังมีแท็กองค์ประกอบว่างที่รวมองค์ประกอบเริ่มต้นและสิ้นสุด
ตัวอย่าง:
-
เริ่มแท็ก: <tag1>
-
สิ้นสุดแท็ก: </tag1>
-
แท็กองค์ประกอบว่าง: <empty_tag1 />
คุณลักษณะ
อีกส่วนหนึ่งขององค์ประกอบ XML คือแอตทริบิวต์ องค์ประกอบสามารถมีแอตทริบิวต์ที่ไม่ซ้ำกันได้หลายรายการ แอตทริบิวต์ช่วยให้เราระบุข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบได้ หรือให้แม่นยำยิ่งขึ้น แอตทริบิวต์กำหนดคุณสมบัติขององค์ประกอบ
แอตทริบิวต์เป็นคู่ชื่อ-ค่าเสมอ:
ตัวอย่างของแอตทริบิวต์ในแท็ก:
ค่าของแอตทริบิวต์ต้องอยู่ในเครื่องหมายคำพูดคู่ ( " ) หรือเครื่องหมายคำพูดเดี่ยว ( ' ) แอตทริบิวต์จะใช้ในแท็กเริ่มต้นและแท็กองค์ประกอบว่างเท่านั้น
การหลีกเลี่ยงอักขระพิเศษห้าตัว (<, >, ', ”, &)
เห็นได้ชัดว่า ไม่สามารถใช้สัญลักษณ์ < , >และ&ในข้อมูลอักขระและค่าแอตทริบิวต์ได้ คุณต้องใช้ Escape Sequence พิเศษเพื่อเป็นตัวแทน ลำดับพิเศษยังใช้เมื่อเขียนเครื่องหมายอัญประกาศเดี่ยวและเครื่องหมายอัญประกาศภายในค่าแอตทริบิวต์:
เครื่องหมาย | เปลี่ยน |
---|---|
< | < |
> | > |
& | & |
' | ' |
" | " |
นอกจากนี้ ในการเขียนอักขระ\คุณต้องใช้\\
ส่วน CDATA
ส่วน CDATA ไม่ใช่หน่วยตรรกะของข้อความ ส่วนประเภทนี้อาจเกิดขึ้นได้โดยที่ไวยากรณ์ XML ช่วยให้เราวางข้อมูลอักขระในเอกสารได้
ส่วนเริ่มต้นด้วย<![CDATA[และลงท้ายด้วย]] > ข้อมูลอักขระจะอยู่ระหว่างบิตของมาร์กอัปเหล่านี้ และสามารถใช้สัญลักษณ์< , >และ& ในรูปแบบโดยตรงได้
ความคิดเห็น
ความคิดเห็นไม่ถือเป็นข้อมูลตัวละคร ความคิดเห็นเริ่มต้นด้วย<!--และลงท้ายด้วย-- > ลำดับอักขระ--ไม่สามารถใช้ภายในความคิดเห็น นอกจากนี้ ภายในความคิดเห็น อักขระเครื่องหมายและไม่ได้หมายถึงมาร์กอัป
ตัวอย่าง:
ชื่อ
ใน XML ชื่อทั้งหมดสามารถมีได้เฉพาะตัวอักษรในตารางอักขระ Unicode เลขอารบิค จุด ทวิภาค ยัติภังค์ และขีดล่าง ชื่อสามารถขึ้นต้นด้วยตัวอักษร ทวิภาค หรือขีดล่าง โปรดทราบว่าชื่อไม่สามารถขึ้นต้นด้วยสตริงXML
ตัวอย่าง
ลองดูที่คลาส Java และวัตถุของคลาสนั้น จากนั้นเราจะพยายามทำให้วัตถุเป็นอนุกรมในรูปแบบ XML รหัสชั้นเรียน:
public class Book {
private String title;
private String author;
private Integer pageCount;
private List<String> chapters;
public Book(String title, String author, Integer pageCount, List<String> chapters) {
this.title = title;
this.author = author;
this.pageCount = pageCount;
this.chapters = chapters;
}
// Getters/setters
}
และการสร้างวัตถุ:
Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));
ต่อไปนี้คือตัวอย่างการแสดง XML ที่ถูกต้องของวัตถุ Java ที่มี 4 ฟิลด์ ซึ่งหนึ่งในนั้นเป็นคอลเลกชัน (ดูโค้ด Java ด้านบน):
> <ชื่อ>หนังสือเล่มโปรดของฉัน</title>
<ผู้แต่ง>อมิโก</ผู้เขียน>
<pageCount>999</pageCount>
<บท>
<บท>บทที่ 1</บท>
<บท>บทที่ 2</บท>
<บท>บทที่ 3</บท>
<บท>บทที่ 4</บท>
<บท>บทที่ 5</บท>
<บท>บทที่ 6</บท> </บท
> <
/หนังสือ>
XML สคีมา
XML schema คือคำอธิบายโครงสร้างของเอกสาร XML ข้อกำหนดที่เกี่ยวข้อง (XML Schema Definition หรือ XSD) เป็นคำแนะนำของ W3C
XSD ได้รับการออกแบบมาเพื่อแสดงกฎที่เอกสาร XML ต้องปฏิบัติตาม แต่สิ่งที่น่าสนใจที่สุดสำหรับเราคือ XSD ได้รับการออกแบบมาให้ใช้ในการพัฒนาซอฟต์แวร์ที่ประมวลผลเอกสาร XML ช่วยให้เราตรวจสอบความถูกต้องของเอกสาร XML โดยทางโปรแกรม
ไฟล์ที่มี XML schema จะมีนามสกุลเป็น .xsd การออกแบบ XML schema นั้นอยู่นอกเหนือขอบเขตของบทเรียนนี้ ดังนั้นสำหรับตอนนี้โปรดทราบว่ามีความเป็นไปได้อยู่
GO TO FULL VERSION