XML정리
FrontPage|FindPage|TitleIndex|RecentChanges|UserPreferences E D R S I M H RSS

XML 정리 #

정리하다 만건 나중에 -ㅇ-;;

  • XML: Extensible Markup Language
    • data 만 저장한다
    • root element 는 반드시 하나다. (요것 실수한 적있음;)
  • XML namespace
    • 보통 URI 사용
      • URL 은 URI 의 subset
      • URI 는 identifier, 단지 유일한 문자열일 뿐이다. url 도 포함. 꼭 무슨 http:// 어쩌고일 필요는 없다.
    • 한 문서내에서 naming collision 을 막기 위함
    • 예약된 'xml' 이라는 namespace 만 빼놓고 뭐든 사용가능하다.
    • xmlns 는 xml namspace 를 말한다.
    • 아래처럼 file 을 지정할 때 일반 파일 이미지 파일을 구분하고 싶을 때 namespace 를 쓴다. (뭐 보통은 그냥 file tag 랑 imgfile 태그를 사용하겠지만;)
      <sometag>
        <file>
        </file>
        <file>
        </file>
      </sometag>
      
  • XSL: Extensible Stylesheet Language
    • xml 문서의 스타일쉬트
    • XSL-FO, XSLT, ?XPath
    • XML vs XSL =(비슷) XHTML vs CSS
      • XSL 이 더 powerful 하다.
      • XSLT 를 고려한다면 CSS 랑은 전혀 다른 듯도 싶다.
  • Define(xml 문서의 structure 를 validation 하는데 필요하지만 필수요소는 아니다)
    • DTD(Document Type Definition)
      • element type, attr, 그들간의 relationship 을 정의한다.
      • EBNF(Extended Backus Naur Form) grammar 를 사용한다.
        • + 는 1 번 이상
        • * 0 번 이상(optional 한 tag 일 때)
        • ? 0~1 번(마찬가지 optional 하면서도 한번만 나와야 하는 tag 일 때)
        • 없으면 1번
        • element 나 attr 의 data type 을 정의할 수는 없다.(xml schema 와의 차이점)
        • CDATA character data
        • PCDATA parsed character data( <, >, & 등이 없는 character data)
      • 필수는 아니지만 parser 로 하여금 validation 하는데 사용될 수 있다.
        <!DOCTYPE letter SYSTEM "letter.dtd"> 
    • XML Schema
      • EBNF 대신에 XML syntax 를 사용한다.
      • DTD 가 못하던 data type 정의가 가능하다!!(숫자인지 문자인지 구별해서 error 를 낼 수 있다!)
      • 보통 .xsd 를 사용한다. (xml schema document)
      • type 몇가지
        • Complex type
        • Simple type: attr 이나 child 를 가질 수 없다.
  • parsing method
    • DOM: Document Object Model
      • hierarchical tree structure
      • 트리를 메모리에 다 올려놓는다.
    • SAX: Simple API for XML
      • event-based model
      • 필요한 정보만 load 가능하다
      • 필요없는 것까지 DOM 방식으로 load 하면 메모리 낭비
    • DOM 과 SAX
      • 각각의 장단점이 있다.(책 참조)
      • DOM 방식을 구현할 때 내부적으로 SAX 를 사용하기도 한다.

EditText|FindPage|DeletePage|LikePages| Valid XHTML 1.0! Valid CSS! powered by MoniWiki