กลับไปหน้าบทความ

อ่าน 2 นาที

SXML

SXML เป็นไวยากรณ์ทางเลือกสำหรับการเขียน ข้อมูล XML (หรือที่แม่นยำกว่านั้นคือ XML Infosets [ 1 ] ) ในรูป แบบ S-expression เพื่ออำนวยความสะดวกในการทำงานกับข้อมูล XML ใน Lisp และ...

SXML

SXML
นามสกุลไฟล์
.sxml , .scm
รหัสประเภทข้อความ
ประเภทของรูปแบบภาษามาร์กอัป

SXMLเป็นไวยากรณ์ทางเลือกสำหรับการเขียน ข้อมูล XML (หรือที่แม่นยำกว่านั้นคือXML Infosets [ 1 ] ) ในรูปแบบ S-expressionเพื่ออำนวยความสะดวกในการทำงานกับข้อมูล XML ในLispและSchemeชุดเครื่องมือที่เกี่ยวข้องจะใช้XPath , SAXและXSLTสำหรับ SXML ใน Scheme [ 2 ] [ 3 ]และมีให้ใช้งานในGNU Guileซึ่งเป็นการใช้งานภาษาดังกล่าว

การจับคู่ข้อความระหว่าง SXML และ XML สำหรับตัวอย่างโค้ด XML แสดงอยู่ด้านล่าง:

อีเอ็มแอลอี SXML
<tag attr1= "value1" attr2= "value2" > <nested>โหนดข้อความ</nested> <empty/> </tag>
( แท็ก( @ ( attr1 "value1" ) ( attr2 "value2" )) ( nested "Text node" ) ( ว่างเปล่า))

เมื่อเปรียบเทียบกับรูปแบบอื่น ๆ ของ XML และภาษาที่เกี่ยวข้อง SXML มีข้อดีคือสามารถแยกวิเคราะห์ได้โดยตรงด้วยการใช้งาน Scheme ที่มีอยู่ เครื่องมือและเอกสารที่เกี่ยวข้องได้รับการยกย่องในหลายแง่มุมโดย David Mertz ในคอลัมน์ IBM developerWorks ของเขา แม้ว่าเขาจะวิจารณ์ลักษณะเบื้องต้นของเอกสารและระบบก็ตาม[ 4 ]

ตัวอย่าง

ลองพิจารณาหน้าเว็บ XHTMLอย่างง่ายต่อไปนี้:

< html xmlns = " http://www.w3.org/1999/xhtml" xml :lang = " en" lang = " en " > <head> <title> ตัวอย่างหน้าเว็บ</title> </head> <body> < h1 id = " greeting " > สวัสดี ! </h1> <p> นี่เป็นเพียง" & gt ; & gt ;ตัวอย่าง</p> เพื่อแสดงXHTML และ SXML </p> </body> </html>

หลังจากแปลงเป็น SXML แล้ว หน้าเว็บเดียวกันนี้จะมีลักษณะดังนี้:

( *TOP* ( @ ( *NAMESPACES* ( x "http://www.w3.org/1999/xhtml" ))) ( x:html ( @ ( xml:lang "en" ) ( lang "en" )) ( x:head ( x:title "ตัวอย่างหน้าเว็บ" )) ( x:body ( x:h1 ( @ ( id "greeting" )) "สวัสดี" ) ( x:p "นี่เป็นเพียง \">>ตัวอย่าง<<\" เพื่อแสดง XHTML และ SXML" ) )))

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

ในสตริง SXML มีอักขระสองตัวที่ต้องมีการหลีกเลี่ยง คือ"ตัวคั่นสตริง (ใช้ `\ \"n`) และ\สัญลักษณ์หลีกเลี่ยงเอง (ใช้ `\n` \\) โค้ด XML ด้านบนต้องหลีกเลี่ยงอักขระสามตัว ได้แก่ `\n`, `\n` และ `\n` (ใช้ `\n` &, `\ n` และ`\n` ตามลำดับ) <>&amp;&lt;&gt;

  • คู่มือการใช้งานเครื่องมือ SXML โดย Dmitry Lizorkin
  • แพ็คเกจ SXML สำหรับ Racket
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=SXML&oldid=1309060119 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ SXML

SXML เป็นไวยากรณ์ทางเลือกสำหรับการเขียน ข้อมูล XML (หรือที่แม่นยำกว่านั้นคือ XML Infosets [ 1 ] ) ในรูป แบบ S-expression เพื่ออำนวยความสะดวกในการทำงานกับข้อมูล XML ใน Lisp และ...

ตัวอย่าง

ลองพิจารณาหน้าเว็บ XHTML อย่างง่ายต่อไปนี้:

ลิงก์ภายนอก

คู่มือการใช้งานเครื่องมือ SXML โดย Dmitry Lizorkin แพ็คเกจ SXML สำหรับ Racket ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=SXML&oldid=1309060119 "