SXML은 리스프 및 스킴에서 XML 데이터 작업을 용이하게 하기 위해 XML 데이터(보다 정확하게는 XML Infoset[1])를 S-표현식으로 작성하는 대체 구문이다. 관련 도구 세트는 스킴에서 SXML용 XPath, SAX 및 XSLT를 구현하고 해당 언어의 GNU 가일 구현에서 사용할 수 있다.[2][3]
샘플 XML 조각에 대한 SXML과 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은 기존 스킴 구현을 통해 직접 구문 분석할 수 있다는 이점이 있다. 관련 도구와 문서는 IBM DeveloperWorks 칼럼에서 데이비드 메르츠(David Mertz)가 여러 측면에서 칭찬했지만 문서와 시스템의 예비적 특성에 대해서도 비판했다.[4]