XML정리
FrontPage
|
FindPage
|
TitleIndex
|
RecentChanges
|
UserPreferences
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
|