WIPIVERSE

SXML

SXML은 XML 데이터(보다 정확히는 XML 인포셋, XML Infoset)를 S-표현식(S-expression)으로 표현하기 위한 대체 문법이다. 주로 Lisp 및 Scheme 프로그래밍 언어 환경에서 XML 데이터를 다루기 쉽도록 고안되었다. SXML은 2002년 올레그 키셀료프(Oleg Kiselyov)에 의해 처음으로 명세가 제안되었으며, 이후 관련 도구 모음이 Scheme 언어를 기반으로 구현되었다.

SXML의 핵심 아이디어는 XML 문서의 각 요소(element)를 괄호로 묶인 리스트로 표현하는 것이다. 예를 들어, XML의 <tag attr1="value1"><nested>Text node</nested></tag>는 SXML에서 (tag (@ (attr1 "value1")) (nested "Text node"))와 같은 형태로 나타난다. 이때 속성(attribute)은 특수한 이름인 @를 가진 노드로 표현되며, 이는 XML에서 @가 유효한 태그 이름으로 허용되지 않기 때문에 이름 충돌의 위험이 없다.

SXML의 장점 중 하나는 기존 Scheme 구현체에서 직접 파싱이 가능하다는 점이다. 또한 SXML을 기반으로 XPath, SAX, XSLT에 대응하는 기능을 구현한 도구 모음이 개발되었으며, 이들은 GNU Guile 구현체에서 사용할 수 있다. 구체적으로 SXPath는 XPath에 대응하는 XML 질의 언어이고, SXSLT는 XML 변환을 위한 조작 언어이다. 이들 도구는 Racket, GNU Guile 등 여러 Scheme 계열 환경에서 패키지로 제공된다.

SXML은 XML 문서를 작성하고 변환하는 데 있어 원시 마크업 언어보다 더 간결하고 표현력이 뛰어나다는 평가를 받는다. IBM developerWorks의 데이비드 머츠(David Mertz)는 SXML과 관련 도구를 여러 측면에서 긍정적으로 평가하면서도, 문서화의 초기 단계성과 시스템의 미완성 측면을 지적한 바 있다.

한편, SXML이라는 약어는 위와 같은 Scheme 기반 XML 표현 외에도 다른 맥락에서 사용되기도 한다. 예를 들어, SAP의 ABAP 프로그래밍 환경에는 sXML 라이브러리가 존재하며, 이는 XML 파싱을 위한 별도의 라이브러리로 iXML 라이브러리보다 더 엄격한 검증을 수행한다. 또한 Cisco Unified Communications Manager의 서비스 가능성 API에서도 sxml이라는 명칭이 사용된다. 이처럼 SXML이라는 용어는 컴퓨터 과학 및 소프트웨어 분야에서 여러 의미로 쓰이므로, 맥락에 따라 그 의미를 구분할 필요가 있다.

SXML의 파일 확장자는 일반적으로 .sxml 또는 .scm이 사용되며, 마크업 언어 형식으로 분류된다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기