사용자 도구

사이트 도구


kb:xmlglossary

XML glossary

1. DTD

1.1. 정의

  • Document Type Definition
  • XML 문서 내부의 노드들을 규격화하기 위한 정의. AA 노드 다음에는 BB 노드가 와야한다, 뭐 이런 식.

1.2. 예제

<!DOCTYPE TVSCHEDULE [<!ELEMENT TVSCHEDULE (CHANNEL+)>
<!ELEMENT CHANNEL (BANNER,DAY+)>
<!ELEMENT BANNER (#PCDATA)>
<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
<!ELEMENT HOLIDAY (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
<!ELEMENT TIME (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)> 
<!ELEMENT DESCRIPTION (#PCDATA)>
 
<!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>
<!ATTLIST CHANNEL CHAN CDATA #REQUIRED>
<!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>
<!ATTLIST TITLE RATING CDATA #IMPLIED>
<!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>
]>

2. XSLT

2.1. 정의

3. XSL

3.1. 정의

  • Extensible Stylesheet Language
  • see XSLT

4. XPath

4.1. 정의

  • XPath는 XML 문서의 일부분을 선택하기 위한 문법이다.
  • XPath는 XML 문서의 일부분을 선택하기 위해 경로(path) 형태의 문법을 사용한다.
  • XPath는 XSLT에서 쓰이는 표준 함수들을 정의한다.
  • XPath는 XML 형태로 쓰이지 않는다.
  • 요약하면 XML 문서 안에 있는 특정 노드를 선택하기 위한 언어
  • 좀 더 자세한 정보는 XPath Tutorial을 참고.

4.2. 예제

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
  <cd country="USA">
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <price>10.90</price>
  </cd>
  <cd country="UK">
    <title>Hide your heart</title>
    <artist>Bonnie Tyler</artist>
    <price>9.90</price>
  </cd>
  <cd country="USA">
    <title>Greatest Hits</title> 
    <artist>Dolly Parton</artist> 
    <price>9.90</price> 
  </cd>
</catalog>

루트 노드 선택하기

/catalog

루트 노드 하위의 모든 cd 노드 선택하기

/catalog/cd

값이 10.80보다 큰 price 노드들 선택하기

/catalog/cd[price>10.80]

속성 선택하기

/catalog/cd[@country]

5. XPointer

6. XQL

  • XML Query Language

7. SOAP

  • Simple Object Access Protocol

8. SAX

  • Simple API for XML
  • XML 파싱을 위한 간단한 API -_-
  • XML 문서를 앞쪽에서부터 읽어가면서 노드가 나타날 때마다 사용자가 설정한 콜백 함수를 호출하는 방식으로 파싱. 되돌아갈 수는 없다.
  • 문서 전체를 메모리에 올릴 필요가 없기 때문에 빠르고, 메모리를 적게 먹는다.

9. DOM

  • Document Object Model
  • XML 파싱을 위한 좀 복잡한 API -_-;;;
  • XML 문서 전체를 읽어들여, 트리 형태로 만든다.
  • 파싱을 완료하기 위해서는 문서 전체를 메모리에 읽어들여야 하기 때문에 느리고, 메모리를 많이 먹는다. 대신 SAX에 비해 좀 더 많은 기능을 제공한다.

링크

kb/xmlglossary.txt · 마지막으로 수정됨: 2014/11/07 13:43 (바깥 편집)