SXML - SXML
Přípona názvu souboru | .sxml, .scm |
---|---|
Typový kód | TEXT |
Typ formátu | značkovací jazyk |
SXML je alternativní syntaxe pro zápis XML data (přesněji Infosety XML[1]) tak jako S-výrazy usnadnit práci s daty XML v systému Windows Lisp a Systém. Přidružená sada nástrojů[který? ] nářadí XPath, SAXOFON a XSLT pro SXML ve schématu[2][3] a jsou k dispozici v GNU Guile provádění tohoto jazyka.
Níže je uvedena textová korespondence mezi SXML a XML pro ukázkový fragment XML:
XML | SXML |
---|---|
| (štítek (@ (attr1 „hodnota1“) (attr2 „hodnota2“)) (vnořené "Textový uzel") (prázdný)) |
Ve srovnání s jinými alternativními reprezentacemi pro XML a jeho přidružené jazyky má SXML tu výhodu, že je přímo analyzovatelný existující implementací schématu. Související nástroje a dokumentace byly v mnoha ohledech oceněny Davidem Mertzem IBM developerWorks sloupec, i když také kritizoval předběžnou povahu jeho dokumentace a systému.[4]
Příklad
Vezměte následující jednoduchý XHTML strana:
<html xmlns=„http://www.w3.org/1999/xhtml“ xml: lang=„cs“ jazyk=„cs“> <hlava> <titul>Ukázková stránka</titul> </hlava> <tělo> <h1 id="Pozdrav">Ahoj!</h1> <p>To je jen & gt; & gt;příklad& lt; & lt; ukázat XHTML & amp; SXML.</p> </tělo> </html>
Po překladu do SXML nyní vypadá stejná stránka takto:
(*HORNÍ* (@ (* NÁZVY (X „http://www.w3.org/1999/xhtml“))) (x: html (@ (xml: lang „cs“) (jazyk „cs“)) (x: hlava (x: název „Ukázková stránka“)) (x: tělo (x: h1 (@ (id "Pozdrav")) "Ahoj") (x: str „Toto je pouze >> příklad << pro zobrazení XHTML a SXML.“))))
Dvojice značek každého prvku je nahrazena sadou závorek. Název značky se na konci neopakuje, jedná se pouze o první symbol v seznamu. Následuje obsah prvku, což jsou buď samotné prvky, nebo řetězce. U atributů XML není vyžadována žádná speciální syntaxe. V SXML jsou jednoduše reprezentovány pouze jako další uzel, který má speciální název @. To nemůže způsobit střet názvu se skutečnou značkou „@“, protože @ není jako název značky v XML povolen. Toto je běžný vzor v SXML: kdykoli se značka použije k označení zvláštního stavu nebo něčeho, co není možné v XML, použije se název, který nepředstavuje platný identifikátor XML.
Vidíme také, že není třeba „unikat“ jinak smysluplným postavám jako & a> jako & amp; a & gt; subjekty. Veškerý obsah řetězce je automaticky vynechán, protože je považován za čistý obsah a neobsahuje žádné značky ani entity. To také znamená, že je mnohem snazší vložit automaticky generovaný obsah a že neexistuje nebezpečí, že bychom mohli zapomenout uniknout vstupu uživatele, když jej zobrazíme ostatním uživatelům (což by mohlo vést ke všem druhům skriptování mezi weby útoky nebo jiné potíže s vývojem).
Reference
- ^ Kiselyov, Oleg (2002). "Specifikace SXML". Oznámení ACM SIGPLAN. 37 (6): 52–58. doi:10.1145/571727.571736.
- ^ Kiselyov, Oleg; Lisovský, Kirill (2002). Implementace XML, XPath, XSLT jako SXML, SXPath a SXSLT (PDF). Mezinárodní konference Lisp.
- ^ Kiselyov, Oleg; Krishnamurthi, Shriram (2003). SXSLT: Manipulační jazyk pro XML. Praktické aspekty deklarativních jazyků. Přednášky z informatiky. 2562. str. 256–272. doi:10.1007/3-540-36388-2_18. ISBN 978-3-540-00389-2.
- ^ Mertz, David (23. října 2003). „Záležitosti XML: vyšetřování SXML a SSAX“. IBM developerWorks. Archivovány od originál dne 4. prosince 2004. Citováno 10. ledna 2015.