without haste but without rest

XML 컨셉 본문

etc.

XML 컨셉

JinungKim 2020. 10. 28. 20:07
참조 - www.w3schools.com/xml/xml_whatis.asp
 

XML Introduction

Introduction to XML XML is a software- and hardware-independent tool for storing and transporting data. What is XML? XML stands for eXtensible Markup Language XML is a markup language much like HTML XML was designed to store and transport data XML was desi

www.w3schools.com

 


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 Tree

XML Tree XML documents form a tree structure that starts at "the root" and branches to "the leaves". An Example XML Document The image above represents books in this XML:     

www.w3schools.com

 

<?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
 

XML Namespaces

XML Namespaces XML Namespaces provide a method to avoid element name conflicts. Name Conflicts In XML, element names are defined by the developer. This often results in a conflict when trying to mix XML documents from different XML applications. This XML c

www.w3schools.com

 

 

사용자가 태그를 확장할 수 있지만 태그 이름이 겹치는 중복 문제가 발생한다. 따라서 이를 해결하기 위해 사용하는 것이 네임스페이스다.

 

<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 DTD

XML DTD An XML document with correct syntax is called "Well Formed". An XML document validated against a DTD is both "Well Formed" and "Valid". What is a DTD? DTD stands for Document Type Definition. A DTD defines the structure and the legal elements and a

www.w3schools.com

 

 

XML Schema reference
 

XML Schema

XML Schema An XML Schema describes the structure of an XML document, just like a DTD. An XML document with correct syntax is called "Well Formed". An XML document validated against an XML Schema is both "Well Formed" and "Valid". XML Schema XML Schema is a

www.w3schools.com


 

'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
Comments