อ่าน 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` ตามลำดับ) <>&<>
ลิงก์ภายนอก
- คู่มือการใช้งานเครื่องมือ SXML โดย Dmitry Lizorkin
- แพ็คเกจ SXML สำหรับ Racket
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ 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 "