반응형
사용자 삽입 이미지
이번엔 나머지 부분들을 통합해서 보기로 했다. Javascript 쪽과 그 외 부분들이 궁금해 죽겠어서 그런거라..
러쉬러쉬.. :) 하지만 내용 부분중 빼먹은 부분은 없슴다.
모든 내용의 출처는 http://www.w3schools.com/ 이다.

1. Validation (유효성 점검)
모든 문법에 맞는 XML 과 그렇지 않는 XML 을 살펴보기로 한다. 그전에 지난번에 봤던 문법을 요약해 보면
   a) Root Element 가 있어야 한다.
   b) 끝부분 태그가 있어야 한다.
   c) 소대문자를 가린다
   d) 태그 순서와 배열을 지켜야 한다.
   d) Attribute 의 값은 따옴표 안에 들어 있어야 한다.
이다.

정확하게 맞는 XML 을 보면 이제껏 보아온 XML 예제이다. 그 Note 예제..
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

자 그럼 위의 XML 이 유효한 XML 이란 무엇일까? DTD (Documnet Type Definition: 문서형 정의) 법에 맞는 XML 이다.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note> 

DOCTYPE 선언이 위의 샘플에 들어있다. 외부 DTD 파일을 참조한다는 뜻.

2) XML DTD
여기선 DTD 가 무엇인지 그리고 예제만 보고 넘어간다. 이후에 XML DTD 관련해서 따로 올릴 예정이다.
DTD 의 목적은 XML 문서의 구조에 대한 정의에 따라 만들어진 Element 들의 사용을 관리하기 위해 사용된다.

<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>

3) XML Schema
DTD 대신 사용할 수 있는건 W3C 를 기반으로 한 Schema 이다. 여기서도 예제만 보고 넘어간다.

<xs:element name="note">
<xs:complexType>
  <xs:sequence>
    <xs:element name="to"      type="xs:string"/>
    <xs:element name="from"    type="xs:string"/>
    <xs:element name="heading" type="xs:string"/>
    <xs:element name="body"    type="xs:string"/>
  </xs:sequence>
</xs:complexType>

</xs:element>

4) 유효성 검사기(Validator)
XML 문서에 에러가 있으면 XML 어플리케이션은 멈추게 된다. XML 소프트웨어는 작고 빠르고 호환성이 있어야 하기 때문이다. HTML 브라우저는 마지막 태그가 없다던가 하는 에러가 있더라도 만들어진 문서를 사용자에게 보여준다. 하지만 XML 에서는 에러가 허용되지 않는다.
모 국내에도 있겠지만서도 W3School.com 에 가면 XML Validator 기능이 있다. DTD 의 유효성 체크는 인터넷탐색기에서는 되지만 Firefox, Mozilla, Netwcape 그리고 Opera 에서는 지원을 안한다.

5) XML 문서보기
XML 문서에는 Data 를 보여주기 위한 정보가 포함되어 있지 않다. 그렇기 때문에 문서를 열게 되면 아래와 같이 열리게 된다. 문서의 내용을 보고 싶다면 CSS, XSLT 그리고 JavaScript 를 사용해야 한다.

그럼 CSS (Cascading Style Sheets) 를 사용하여 XML 문서를 보는 법을 알아보겠다.
CSS 파일 - http://www.w3schools.com/xml/cd_catalog.txt
XML 파일 - http://www.w3schools.com/xml/cd_catalog.xml
그리고 CSS 가 적용된 XML 파일 - http://www.w3schools.com/xml/cd_catalog_with_css.xml

맨 마지막 파일을 보면 원하는데로 XML 데이터들이 CSS 정의대로 보여지고 있다. XML 문서에 아래의 예제와 같이 CSS 선언이 되어 있다.

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>
<CATALOG>
  <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
  </CD>
  <CD>
    <TITLE>Hide your heart</TITLE>
    <ARTIST>Bonnie Tyler</ARTIST>
    <COUNTRY>UK</COUNTRY>
    <COMPANY>CBS Records</COMPANY>
    <PRICE>9.90</PRICE>
    <YEAR>1988</YEAR>
  </CD>
.
.
.
.
</CATALOG>   

CSS 를 사용하는 방법은 많이 사용되고 있는 방법이 아니며, W3C 에서는 XLST 사용을 권하고 있다.
그렇다면 XSLT (eXtensible StyleSheet Language Transformations) 을 살펴보기로 하자. XSLT 는 CSS 보다 좀더 복잡하다. XSLT 를 XML 에 사용하는 방법중 하나는 브라우저에 보여지기 전에 HTML 로 변환하는 방법이다.

XML 예제파일 - http://www.w3schools.com/xml/simple.xml
XSLT 예제파일 - http://www.w3schools.com/xml/simple.xsl
XSLT 가 적용된 XML 보기 - http://www.w3schools.com/xml/simplexsl.xml

역시 마지막 파일에서도 위의 CSS 선언과 마찬가지로 <?xml-stylesheet type="text/xsl" href="simple.xsl"?>
부분이 선언되어 있다. XSLT 관련되어서는 나중에 좀더 알아보기로 하겠다.

XSLT 변환은 브라우저에서 XML 을 읽으면서 시행이 된다. 다른 버전의 브라우저에서 XSLT 를 선언한 XML 이 다르게 보이는 경우가 있기 때문에 서버측에서 XSLT 가 처리되도록 하면 문제 해결이 된다.

서버측에서 처리된 XSLT http://www.w3schools.com/xml/simple.asp
웹서버에서 처리가 되었든 브라우저에서 되었든 변환된 결과는 같다.

다음은 XML Javascript 관련해서 읽어보도록 하겠다.

반응형

'초짜 IT보이 서바이벌 스토리 > XML' 카테고리의 다른 글

8. XML Parser(파서)  (0) 2008.07.16
6. XML Attributes  (0) 2008.07.09
5. XML ELEMENT  (0) 2008.07.06
4. XML 문법  (0) 2008.07.06
3. XML Tree  (0) 2008.07.06

+ Recent posts