XML - Syntax

XML 2019. 5. 14. 18:21

아래는 완벽한 XML문서입니다.

<?xml version = "1.0"?>
<contact-info>
   <name>Tanmay Patil</name>
   <company>TutorialsPoint</company>
   <phone>(011) 123-4567</phone>
</contact-info>

위의 예에서두 가지의 정보가 있다는 사실을 알 수 있습니다.

  • <contact-info>와 같은 Markup
  • Tutorials Point나 전화번호과 같은 텍스트나 문자 데이터

아래는 XML 문서에서 다른 종류의 마크업과 텍스트를 쓰기 위한 문법 규칙을 묘사한 그림입니다.

위 그림 각각의 부분을 상세히 살펴봅시다.

 

XML Declaration

XML문서는 선택적으로 XML 선언을 가지고 있을 수 있습니다.

<?xml version = "1.0" encoding = "UTF-8"?>

위와 같은 형식으로 쓰여집니다. version은 XML 버전을 의미하고 encoding은 문서에서 사용되는 문자 인코딩을 의미합니다.

 

Syntax Rules for XML Declaration

  • XML 선언은 대소문자를 구분합니다. <?xml> 부분의 xml은 반드시 소문자로 작성하여야 합니다.
  • 문서가 XMl 선언을 포함한다면, XML선언은  XML 문서의 가장 첫 문장이 되어야 합니다.
  • XMl 선언은 반드시 XML 문서의 가장 첫 문장이 되어야 합니다.
  • HTTP 프로토콜은 XML 선언에 있는 인코딩 값을 덮어쓸 수 있습니다.

Tags and Elements

XML 파일은 몇개의 XML element로 구성되어 있습니다. 이 XML element는 XML node 또는 XML tag라고 불리기도 합니다. XML element의 이름은 아래처럼 <>로 둘러싸여 있습니다.

<element>

Syntax Rules for Tags and Elements

Element Syntax - 각 XML element는 start element와 end element로 둘러쌀 필요가 있습니다.

<element>....</element>

 좀 더 간단한 경우는 아래와 같이 쓸 수 있습니다.

<element/>

 

Nesting of Elements - XML 엘레먼트는 여러개의 XML 엘레먼트를 자식처럼 가질 수 있습니다. 하지만 이 자식 element들은 구간이 겹칠 수 없습니다. 즉, 각 엘레먼트의 end tag는 가장 최근의 매치되지 않은 start tag와 같은 이름을 가져야 합니다.

<?xml version = "1.0"?>
<contact-info>
<company>TutorialsPoint
<contact-info>
</company>

위는 적절하지 못한 nested tag의 예입니다.

아래처럼 써야 합니다.

<?xml version = "1.0"?>
<contact-info>
   <company>TutorialsPoint</company>
<contact-info>

 

Root Element - XML 문서는 오직 하나의 루트 엘레먼트를 가질 수 있습니다. 예를 들면, 아래와 같은 XML문서는 옳지 않습니다.

<x>...</x>
<y>...</y>

 

왜냐하면 x와 y 엘레먼트 모두 루트 엘레먼트 없이 top level에 나타났기 때문입니다.

아래와 같이 구현해야 맞습니다.

<root>
   <x>...</x>
   <y>...</y>
</root>

 

Case Sensitivity - XML 요소의 이름은 대소문자를 구별합니다. 즉, start element와 end element는 대소문자까지 정확히 일치해야 합니다.

예를 들어, <contact-info>는 <Contact-Info>와 다릅니다.

 

 

XML Attributes

attribute는 각 엘레먼트에 이름/값 짝을 사용해 하나의 속성을 지정합니다. XML element는 하나 이상의 attribute를 가질 수 있습니다. 예를 들어 

<a href = "http://www.tutorialspoint.com/">Tutorialspoint!</a>

여기서 href는 attribute의 이름이고, http://www.tutorialspoint.com/은 attribute 값입니다.

 

Syntax Rules for XML Attributes

  • XML에서 Attribute의 이름은 HTML과 달리 대소문자를 구분합니다. 즉, HREF와 href는 두 가지의 서로 다른 attribute로 인식됩니다.
  • 같은 attribute는 두 개의 값을 가질 수 없습니다. 아래의 예는 attribute b가 두 번 중복되었기 때문에 적절하지 못합니다.
<a b = "x" c = "y" b = "z">....</a>

 

  • attribute 이름은 쌍따옴표 없이 정의됩니다. 반면 attribute 값은 항상 쌍따옴표로 표시됩니다. 아래의 예는 옳지 못한 xml syntax입니다.
<a b = x>....</a>

 

위의 예에서 XML 값이 쌍따옴표 없이 정의되었습니다.

 

XML References

Reference들은 XML 문서에 추가적인 텍스트나 마크업을 더하거나 포함하도록 합니다. Reference는 항상 예약된 문자인 &심볼로 시작하고 end symbol은 ";"입니다. XML은 두 가지 종류의 reference를 가지고 있습니다.

  • Entity References - entity reference는 시작과 끝 구분자 사이에 이름을 포함합니다. 예를 들어 &amp; 같은 경우 amp는 이름입니다. 이름은 미리 정의된 text나 마크업의 문자열을 참조합니다.
  • Character References - 이러한 reference는 &#65;와 같은 레퍼런스를 포함합니다. #는 숫자 앞에 옵니다. #뒤의 숫자는 문자의 unicode를 참조합니다. &#65; 는 알바벳 A를 의미합니다.

XML Text

XML element와 XML attribute의 이름은 대소문자를 구분합니다. 문자의 인코딩 문제를 피하기 위해서 모든 XML파일은 Unicode UTF-8 또는 UTF-16 파일로 저장됩니다.

XML element들과 XML attribute들 사이의 space나 tab, 새 줄과 같은 공백 문자는 무시됩니다.

몇몇 문자는 XML syntax 자체에 의해 예약되어 있습니다. 그러므로 그러한 문자는 바로 사용할 수 없습니다. 이러한 문자를 사용하기 위해서는 아래의 표와 같은 형식으로 사용해야 합니다.

Not Allowed Character Replacement Entity Character Description
< &lt; less than
> &gt; greater than
& &amp; ampersand
' &apos; apostrophe
" &quot; quotation mark

'XML' 카테고리의 다른 글

XML - Overview  (0) 2019.05.14
XML - Home  (0) 2019.05.14
공지  (0) 2019.05.14
Posted by 몰랑&봉봉
,