เหตุใดจึงจำเป็นต้องใช้รูปแบบข้อความ

รูปแบบข้อความสะดวกต่อการจัดเก็บข้อมูลเพราะทั้งโปรแกรมและมนุษย์สามารถสร้างและประมวลผลได้

ไฟล์ข้อความ (ไฟล์ในรูปแบบข้อความ) สามารถเปิด อ่าน และแก้ไขได้ในโปรแกรมแก้ไขข้อความที่หลากหลาย

หลายโปรแกรมใช้ไฟล์การกำหนดค่าแบบข้อความ แม้ว่ารูปแบบจะมีตัวเลขและค่าไบนารี (ใช่/ไม่ใช่) ก็ตาม

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

ตอนนี้ XML ใช้อยู่ที่ไหน

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

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

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

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

ในทางกลับกัน อักขระจะอยู่ในหนึ่งในสองประเภท: ข้อมูลอักขระหรือมาร์กอัป

มาร์กอัปรวมถึง:

  • แท็กซึ่งแสดงถึงขอบเขตขององค์ประกอบ
  • การประกาศและคำแนะนำในการประมวลผล รวมถึงคุณลักษณะต่างๆ
  • การอ้างอิงเอนทิตี
  • ความคิดเห็น;
  • ลำดับอักขระที่ตัดส่วน CDATA

เอกสารประกอบด้วยองค์ประกอบ ข้อคิดเห็น การประกาศ การอ้างอิงเอนทิตี และคำแนะนำในการประมวลผล มาร์กอัปใช้เพื่อสร้างโครงสร้างทั้งหมดนี้ในเอกสาร

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

สัญลักษณ์มาร์กอัป

มาร์กอัปจะขึ้นต้นด้วย<และลงท้ายด้วย>เสมอ

สัญลักษณ์<และ> (วงเล็บเหลี่ยม) และ& (เครื่องหมายแอมเปอร์แซนด์) มีบทบาทพิเศษ วงเล็บมุมระบุขอบเขตขององค์ประกอบ คำแนะนำในการประมวลผล และลำดับอื่นๆ และเครื่องหมายและช่วยให้เราแทนที่ข้อความด้วยเอนทิตี

การประกาศ XML

การประกาศ XML ระบุรุ่นของภาษาที่ใช้ในการเขียนเอกสาร ข้อกำหนด XML ระบุว่าให้เริ่มเอกสารด้วยการประกาศ XML เนื่องจากการตีความเนื้อหาเอกสารที่เหมาะสมขึ้นอยู่กับเวอร์ชันของภาษา

ในเวอร์ชันแรกของภาษา (1.0) การประกาศนี้เป็นทางเลือก แต่จำเป็นในเวอร์ชันที่ใหม่กว่า การประกาศที่ขาดหายไปจะถือว่าหมายถึงเวอร์ชัน 1.0 การประกาศอาจมีข้อมูลเกี่ยวกับการเข้ารหัสเอกสาร

ตัวอย่าง:

<?XML version="1.1" encoding="UTF-8" ?>

แท็ก

แท็กคือโครงสร้างมาร์กอัปที่มีชื่อขององค์ประกอบ มีแท็กเริ่มต้นและแท็กสิ้นสุด นอกจากนี้ยังมีแท็กองค์ประกอบว่างที่รวมองค์ประกอบเริ่มต้นและสิ้นสุด

ตัวอย่าง:

  • เริ่มแท็ก: <tag1>

  • สิ้นสุดแท็ก: </tag1>

  • แท็กองค์ประกอบว่าง: <empty_tag1 />

คุณลักษณะ

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

แอตทริบิวต์เป็นคู่ชื่อ-ค่าเสมอ:

ชื่อ = "มูลค่า"

ตัวอย่างของแอตทริบิวต์ในแท็ก:

<tag1 name = "value">องค์ประกอบ</tag1>

ค่าของแอตทริบิวต์ต้องอยู่ในเครื่องหมายคำพูดคู่ ( " ) หรือเครื่องหมายคำพูดเดี่ยว ( ' ) แอตทริบิวต์จะใช้ในแท็กเริ่มต้นและแท็กองค์ประกอบว่างเท่านั้น

การหลีกเลี่ยงอักขระพิเศษห้าตัว (<, >, ', ”, &)

เห็นได้ชัดว่า ไม่สามารถใช้สัญลักษณ์ < , >และ&ในข้อมูลอักขระและค่าแอตทริบิวต์ได้ คุณต้องใช้ 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 นั้นอยู่นอกเหนือขอบเขตของบทเรียนนี้ ดังนั้นสำหรับตอนนี้โปรดทราบว่ามีความเป็นไปได้อยู่