Jump to content

SXML

SXML
Расширение имени файла
.sxml , .скм
Введите код ТЕКСТ
Тип формата язык разметки

SXML — это альтернативный синтаксис для записи XML- данных (точнее, XML-информационных наборов). [1] ) как S-выражения , для облегчения работы с XML-данными в Lisp и Scheme . Соответствующий набор инструментов [ который? ] реализует XPath , SAX и XSLT для SXML в схеме [2] [3] и доступны в GNU Guile реализации этого языка .

Текстовое соответствие между SXML и XML для примера фрагмента XML показано ниже:

XML SXML
<tag attr1="value1"
     attr2="value2">
  <nested>Text node</nested>
  <empty/>
</tag>
(tag (@ (attr1 "value1")
        (attr2 "value2"))
  (nested "Text node")
  (empty))

По сравнению с другими альтернативными представлениями XML и связанных с ним языков, SXML имеет то преимущество, что его можно напрямую анализировать с помощью существующих реализаций Scheme. Соответствующие инструменты и документация во многом получили высокую оценку Дэвида Мерца в его колонке на IBM DeveloperWorks , хотя он также раскритиковал предварительный характер документации и системы. [4]

Возьмите следующую простую страницу XHTML :

 <html xmlns="http://www.w3.org/1999/xhtml"
         xml:lang="en" lang="en">
    <head>
       <title>An example page</title>
    </head>
    <body>
       <h1 id="greeting">Hi, there!</h1>
       <p>This is just an "&gt;&gt;example&lt;&lt;" to show XHTML &amp; 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 "An example page"))
    (x:body
       (x:h1 (@ (id "greeting")) "Hi, there")
       (x:p  "This is just an \">>example<<\" to show XHTML & SXML."))))

Пара тегов каждого элемента заменяется набором круглых скобок. Имя тега в конце не повторяется, это просто первый символ в списке. Далее следует содержимое элемента, которое представляет собой либо сами элементы, либо строки. Для атрибутов XML не требуется специального синтаксиса. В SXML они просто представлены как еще один узел, имеющий специальное имя @. Это не может привести к конфликту имени с фактическим "@" тег, потому что @ не допускается в качестве имени тега в XML. Это распространенный шаблон в SXML: каждый раз, когда тег используется для обозначения особого статуса или чего-то, что невозможно в XML, используется имя, которое не является допустимым идентификатором XML.

В строках SXML есть два символа, которые необходимо экранировать: " разделитель строк (с \") и \ сам escape-символ (с \\). Приведенный выше XML-код требует экранирования трех: & , < и >&amp; , &lt;и &gt; соответственно).

  1. ^ Киселёв, Олег (2002). «Спецификация SXML». Уведомления ACM SIGPLAN . 37 (6): 52–58. дои : 10.1145/571727.571736 . S2CID   13955814 .
  2. ^ Киселев Олег; Лисовский, Кирилл (2002). Реализации XML, XPath, XSLT в виде SXML, SXPath и SXSLT (PDF) . Международная конференция по Лиспу.
  3. ^ Киселев Олег; Кришнамурти, Шрирам (2003). SXSLT: язык управления XML . Практические аспекты декларативных языков. Конспекты лекций по информатике. Том. 2562. стр. 256–272. дои : 10.1007/3-540-36388-2_18 . ISBN  978-3-540-00389-2 .
  4. ^ Мерц, Дэвид (23 октября 2003 г.). «Вопросы XML: исследование SXML и SSAX» . IBM DeveloperWorks . Архивировано из оригинала 4 декабря 2004 года . Проверено 10 января 2015 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3cd8c878e631c022f196a1fe5008ad80__1709528040
URL1:https://arc.ask3.ru/arc/aa/3c/80/3cd8c878e631c022f196a1fe5008ad80.html
Заголовок, (Title) документа по адресу, URL1:
SXML - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)