SXML

SXML
SXML
파일 이름 확장자
.sxml, .scm
유형코드본문
포맷의 종류마크업 언어

SXML은 XML 데이터(더 정확히는 XML Infoset[1])를 S 표현식으로 쓰기 위한 대체 구문입니다. 이는 Lisp Scheme에서 XML 데이터를 쉽게 사용할 수 있도록 하기 위함입니다.관련된 툴[which?] 스위트는 Scheme에서 XPath, SAXXSLT for[2][3] SXML을 구현하며 해당 언어의 GNU Guile 구현에서 사용할 수 있습니다.

샘플 XML 스니펫의 SXML과 XML 사이의 텍스트 대응 관계를 다음에 나타냅니다.

XML SXML
<태그 attr1="value1" attr2="value2"> <tag attr1>텍스트 노드 </nested> <빈/> </tag>
(태그 (@ (특성 1 '값 1')         (특성2 '값 2'))   (중첩된 "텍스트 노드")   ()) 

XML 및 관련 언어의 다른 표현과 비교하여 SXML은 기존 Scheme 구현에서 직접 해석할 수 있다는 장점이 있습니다.관련 툴과 문서는 IBM developerWorks 칼럼에서 David Mertz가 여러 측면에서 칭찬한 바 있지만, 문서와 시스템의 [4]예비적 성격도 비판했습니다.

다음의 간단한 XHTML 페이지를 참조해 주세요.

 <backup xmlns="http://www.w3.org/1999/xhtml" xml:backup="en" lang="en"> <head> <backup>예 페이지 </http> </head> <body> <h1 id="body"안녕하세요!</h1> <p> XHTML &amp; SXML을 표시하기 위한 &gt;&lt;&lt; </body> </html>

SXML 로 변환하면, 같은 페이지가 다음과 같이 표시됩니다.

 (*상부* (@ (*네임스페이스* (x "http://www.w3.org/1999/xhtml")))   (x: 삭제 (@ (xml: 삭제 "en") (언어 "en"))     (x: 헤드        (x: 삭제 "예시 페이지"))     (x: 본문        (x:h1 (@ (아이디 "실패")) "안녕하세요")        (x:p  "이것은 XHTML과 SXML을 표시하기 위한 << 예에 불과합니다.)))) 

각 요소의 태그 쌍은 괄호 세트로 대체됩니다.태그 이름은 마지막에 반복되지 않고 목록의 첫 번째 기호일 뿐입니다.요소의 내용은 요소 자체 또는 문자열 중 하나입니다.XML 속성에는 특별한 구문이 필요하지 않습니다.SXML에서는 단순히 @라는 특별한 이름을 가진 다른 노드로 표현됩니다.XML에서는 @가 태그 이름으로 허용되지 않기 때문에 실제 "@" 태그와 이름이 충돌할 수 없습니다. 이것은 SXML의 일반적인 패턴입니다. XML에서는 특별한 상태나 XML에서는 불가능한 것을 나타내기 위해 태그를 사용할 때마다 올바른 XML 식별자를 구성하지 않는 이름이 사용됩니다.

또한 &amp; 및 >와 같이 의미 있는 문자를 &amp; 및 &gt; 엔티티로 "회피"할 필요가 없습니다.문자열 내용은 순수 콘텐츠로 간주되며 태그나 엔티티가 없기 때문에 자동으로 이스케이프됩니다.또, 자동 생성된 컨텐츠를 삽입하는 것이 훨씬 쉬워져, 다른 유저에게 표시할 때에 유저의 입력을 빠뜨리는 일이 없어집니다(모든 종류의 사이트간 스크립팅 공격이나 그 외의 개발상의 불편이 발생할 가능성이 있습니다).

레퍼런스

  1. ^ Kiselyov, Oleg (2002). "SXML Specification". ACM SIGPLAN Notices. 37 (6): 52–58. doi:10.1145/571727.571736.
  2. ^ Kiselyov, Oleg; Lisovsky, Kirill (2002). XML, XPath, XSLT Implementations as SXML, SXPath, and SXSLT (PDF). International Lisp Conference.
  3. ^ Kiselyov, Oleg; Krishnamurthi, Shriram (2003). SXSLT: Manipulation Language for XML. Practical Aspects of Declarative Languages. Lecture Notes in Computer Science. Vol. 2562. pp. 256–272. doi:10.1007/3-540-36388-2_18. ISBN 978-3-540-00389-2.
  4. ^ Mertz, David (23 October 2003). "XML Matters: Investigating SXML and SSAX". IBM developerWorks. Archived from the original on 4 December 2004. Retrieved 10 January 2015.

외부 링크