without haste but without rest
XML 컨셉 본문
참조 - www.w3schools.com/xml/xml_whatis.asp
1. HTML & XML
1). HTML - 화면에 데이터를 표시하기 위한 목적
2). XML (eXentible Markup Language) - 데이터를 주고받기 위한 목적
학교 강의에서 XML은 SGML과 HTML의 장단점을 조합하여 만든 마크업 언어라는 컨셉으로 배웠다. 그런데 위와 같으 설명이 더 직관적이고 피부에 와닿는다.
XML은 데이터를 주고받기 위한 목적인 랭귀지라 데이터의 공유, 전송 그리고 플랫폼 제약이 없다는 특징을 갖는다.
3) 차이점?
HTML은 미리 정의한 태그를 사용하지만 XML은 사용자가 정의한 태그에 기반한다. (즉 확장이 가능하다. -> eXtensible Markup Language)
2. XML sample
참조 - www.w3schools.com/xml/xml_tree.asp
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
1) 전체 태그를 감싸는 루트 요소(<bookstore>)는 한 번씩만 나와야한다.
2) element => book, title과 같은 태그
3) attribute => book의 catergory 는 "cooking"
3. Namespace
참조 - www.w3schools.com/xml/xml_namespaces.asp
사용자가 태그를 확장할 수 있지만 태그 이름이 겹치는 중복 문제가 발생한다. 따라서 이를 해결하기 위해 사용하는 것이 네임스페이스다.
<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="https://www.w3schools.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
똑같은 table 태그지만 네임스페이스를 지정해서 중복을 방지했다.
네임스페이스를 루트요소에서 먼저 선언할 수도 있다.
4. DTD (Document Type Definition) & XML Schema
XML의 목적은 데이터의 공유와 전송이다. 그런데, 사용자가 마음대로 커스터마이징이 가능하다. 따라서 표준화 작업이 필요하다. 표준화를 위해 DTD와 XML Schema를 사용한다.
DTD는 간편하고 쉽다는 장점이 있지만, XML로 작성하지 않는다는 단점이 있다. XML Schema는 DTD에 비해 복잡하지만 더 풍부한 기능을 가지고 있다.
DTD sample
<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
XML Schema sample
<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>
DTD reference
XML Schema reference
'etc.' 카테고리의 다른 글
Codility Lesson4 MaxCounter 파이썬 풀이 (1) | 2021.10.08 |
---|---|
ubuntu 20.04 - konlpy 설치 이슈 및 트러블슈팅 (0) | 2021.09.30 |
konlpy m1 칩 이슈 (0) | 2021.09.23 |
크론탭 튜토리얼 (0) | 2021.05.17 |
자바스크립트 UTC to KST 변환 (0) | 2021.05.07 |