"เป็นอย่างไรบ้าง?"

"เยี่ยม บ่นไม่ได้ วันนี้ Bilaabo บอกฉันเกี่ยวกับ JavaScript ไม่ใช่ทุกอย่าง แต่มากกว่าเพียงเล็กน้อย แน่นอนฉันยังไม่ได้เขียนอะไรใน JS แต่ฉันไม่คิดว่ามันจะเป็น ยาก."

"และ Ellie บอกฉันเกี่ยวกับการทำให้เป็นอนุกรม JSON และคุณอธิบายเฟรมเวิร์กของ Jackson และวิธีตั้งค่า 'การดีซีเรียลไลเซชันแบบ polymorphic' โดยใช้คำอธิบายประกอบ"

"ไม่มีทาง! คุณฉลาดแล้ว Amigo! สตั๊ดตัวจริง!"

"แล้วบางส่วน!"

"ตกลง ไปทำงานกันเถอะ วันนี้เรามีหัวข้อใหม่ที่น่าสนใจ: XML "

XML การทำให้เป็นอันดับเป็น XML - 1

"XML เป็นมาตรฐานสำหรับการแสดงข้อมูลที่มนุษย์สามารถอ่านได้ง่าย และง่ายยิ่งขึ้นโดยโปรแกรม นี่คือตัวอย่างไฟล์ XML:"

XML
<data>
<owner first="Adam" last="Shelton">
<address>London</address>
</owner>
<cat name="Missy" age="15"/>
</data>

"รากฐานของ XML คือแท็ก แท็กคือคำในวงเล็บมุม (เครื่องหมายมากกว่าและน้อยกว่า) มีแท็กเปิดและปิด แท็กเปิดแต่ละแท็กมีแท็กปิดที่สอดคล้องกันหนึ่งแท็ก แท็กเปิดสามารถมีแอตทริบิวต์ได้ "

"แท็กสามารถซ้อนกันภายในแท็กได้ ดังนั้นการสร้างโครงสร้างองค์ประกอบ แท็กระดับบนสุดเรียกว่ารูท: มีแท็กย่อยซึ่งจะมีแท็กย่อยของตัวเอง"

"นี่คือตัวอย่างบางส่วน:"

แท็ก คำอธิบาย
< ข้อมูล > เปิดแท็กข้อมูล
</ ข้อมูล > ปิดแท็กข้อมูล
ชื่อ แมว = " Missy " อายุ = " 15 "> แท็กที่มีคุณสมบัติ ค่าแอตทริบิวต์อยู่ในเครื่องหมายคำพูด
<ข้อมูล
> <เจ้าของ>
<ชื่อแมว = "มิสซี่"/> </เจ้าของ>
</data>
แท็กที่ซ้อนกัน
< ชื่อแมว = "มิสซี่" อายุ = "15"  /> แท็กปิดตัวเอง
แท็กดังกล่าวไม่ต้องการแท็กปิด
และไม่สามารถมีแท็กย่อยได้
<info>
ข้อมูลทุกประเภทสามารถไปที่นี่ได้
</info>
แท็กสามารถมีข้อมูลที่เป็นข้อความ
<info> <data xxx = "yyy"> </data> ข้อมูล
ชนิดใดก็ได้<data 2xxx = "yyy"/> สามารถไปที่นี่ได้</info>





แท็กอาจมีข้อมูลข้อความกระจายอยู่กับแท็กอื่นๆ

"มันดูง่าย มีแท็กอะไรบ้าง"

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

"โดยพื้นฐานแล้ว XML เป็นวิธีการเขียนข้อมูลเป็นแผนผังองค์ประกอบที่คอมพิวเตอร์สามารถเข้าใจได้"

"ฉันคิดว่าฉันเข้าใจแล้ว อย่างไรก็ตาม ฉันมีคำถาม"

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

"ในสถานที่เดียวกับที่ใช้ JSON: สำหรับจัดเก็บและส่งข้อมูล"

"โอเค ไปกันต่อ"

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

"เพื่อให้แน่ใจว่าแท็กไม่ซ้ำกัน คำนำหน้าจึงถูกประดิษฐ์ขึ้น นี่คือรูปลักษณ์:"

แท็ก คำอธิบาย
< สัตว์ : แมว> ป้ายชื่อแมวที่มีคำนำหน้าสัตว์
< สัตว์ :แมว>
</ สัตว์:แมว>
< สวนสัตว์ :แมว>
</ สวนสัตว์ :แมว>
แท็ก แมวสองตัวที่มีคำนำหน้าต่างกัน
< สัตว์ : สวนสัตว์แมว  : ชื่อ = "MX"> ป้าย ชื่อ แมวที่มีคำนำหน้าสัตว์ แอตทริบิวต์ชื่อที่มีคำนำหน้าสวนสัตว์

"คำนำหน้าเรียกอีกอย่างว่าเนมสเปซ ถ้าเราเรียกมันว่าเนมสเปซ คำอธิบายสุดท้ายในตารางจะกลายเป็น 'แท็กแมวที่มีเนมสเปซสัตว์ แอตทริบิวต์ชื่อที่มีเนมสเปซสวนสัตว์'"

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

"ใช่."

" คำนำหน้ายังมีชื่อยาวที่ไม่ซ้ำกันและมีการระบุเมื่อนำเข้าด้วย: "

ตัวอย่าง
< data  xmlns:soap="http://cxf.apache.org/bindings/soap" >
 < สบู่ :item> 
< สบู่ :info/> 
</ สบู่ :item> 
</ data >

"' xml ns :soap' หมายถึง ' XMLn ame s pace SOAP'"

"คุณยังสามารถตั้งชื่อเฉพาะของแท็กที่ไม่มีคำนำหน้า: "

ตัวอย่าง
<ข้อมูล xmlns = "http://www.springframework.org/schema/beans" 
xmlns: soap = "http://cxf.apache.org/bindings/soap" 
xmlns:task = "http://www.springframework .org/schema/task" > 
< สบู่ :item> 
< สบู่ :info/> 
< งาน :info/> 
</ สบู่ :item> 
</data>

"'xmlns=…' ตั้งค่าเนมสเปซสำหรับคำนำหน้าที่ว่างเปล่า กล่าวอีกนัยหนึ่ง ตั้งค่าเนมสเปซสำหรับแท็กที่ไม่มีคำนำหน้า เช่น ข้อมูลในตัวอย่างด้านบน"

"คุณสามารถมีเนมสเปซในเอกสารได้มากเท่าที่คุณต้องการ แต่แต่ละเนมสเปซต้องมีชื่อเฉพาะ"

"เข้าใจแล้ว ทำไมเนมสเปซเหล่านี้ถึงมีชื่อแปลก ๆ แปลกๆ"

"โดยปกติจะระบุ URL ที่ชี้ไปยังเอกสารที่อธิบายเนมสเปซและ/หรือแท็ก XML"

“วันนี้คุณให้ข้อมูลกับฉันมากมาย แล้วมีอะไรอีก”

"ยังมีอีกนิดหน่อย"

"อย่างแรก XML มีส่วนหัว เป็นบรรทัดพิเศษที่อธิบายเวอร์ชัน XML และการเข้ารหัสไฟล์ "โดยปกติจะมีลักษณะดังนี้:"

"มักจะมีลักษณะดังนี้:"

ตัวอย่าง
<?xml  เวอร์ชัน = "1.0"  การเข้ารหัส = "UTF-8"?>
<ข้อมูล xmlns:soap = "http://cxf.apache.org/bindings/soap">
<สบู่:ไอเท็ม>
<สบู่:ข้อมูล/>
</สบู่:รายการ>
</ข้อมูล>

"คุณยังสามารถเพิ่มความคิดเห็นใน XML หากต้องการเริ่มแสดงความคิดเห็น ให้ใช้ '<!--' หากต้องการสิ้นสุด ให้ใช้ '-->'"

ตัวอย่าง
<?xml version = "1.0" encoding = "UTF-8"?>
<data xmlns:soap = "http://cxf.apache.org/bindings/soap">
<soap:item>
<!-- <soap:info/> -->
</soap:item>
<!-- This is also a comment  -->
</data>

"ฉันเข้าใจจนถึงตอนนี้"

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

ลำดับการหลบหนี สัญลักษณ์ที่มันแทนที่
& &
" «
< <
> >
' '

"และนี่คือตัวอย่างโค้ดที่ฝังอยู่ใน XML:"

รหัสจาวา รหัส Java ใน XML
if (a < b)
System.out.println("a is minimum");
<รหัส>
ถ้า (ก  <  ข)
 System.out.println( " a คือขั้นต่ำ" );
</code>

"เอ่อ... มันดูไม่ค่อยสวยเลย"

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

"ตกลง."

"นั่นคือทั้งหมดที่ฉันมีสำหรับวันนี้"

"ไชโย ในที่สุดฉันก็ได้พักสักที"