전체 페이지뷰

2017년 3월 17일 금요일

XML Syntax

이번 챕터에서는 간단한 문법 규칙을 통해 XML 문서를 작성해 봅니다. 아래 예시는 완전한 XML 문서입니다.


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

위의 예에서 두가지 종류의 정보가 있음을 알 수 있습니다.

markup : <contact-info> 같은 것
text나 문자 데이터 : TutorialsPoint, (011)123-4567

다음 다이어그램은 XML 문서에서 다양한 유형의 마크업과 텍스트를 작성하는 문법 규칙을 보여줍니다.
이 다이어그램을 좀더 자세히 알아봅시다.

XML 선언(declaration)

XML 문서는 선택적으로 XML 선언을 가질 수 있습니다. 그것은 다음과 같이 작성됩니다.
<?xml version="1.0" encoding="UTF-8"?>
cs

여기서 version은 XML 버전이고 encoding은 문서에서 사용된 문자 인코딩을 말합니다.

XML 선언의 문법 규칙


  • XML 선언은 대소 문자를 구분하며 "<?xml>"로 시작해야합니다. 여기서 "xml"은 소문자입니다.
  • 문서에 XML 선언이 포함되어 있으면 반드시 XML 문서의 첫 번째 문장에 와야 합니다.
  • HTTP 프로토콜은 XML 선언에 넣은 인코딩 값을 무시할 수 있습니다.


Tag와 Element

XML 파일은 XML-element( XML-node 혹은 XML-tag라고도 부름)들로 구성됩니다. XML-element의 이름은 아래와 같이 삼각형 괄호 <>로 묶습니다.
<element>
cs

tag와 element의 문법 규칙

Element syntax: 각 XML-element는 아래와 같이 start element로 시작하여 end element로 닫아야 합니다.
<element>....</element>
cs

아주 단순한 케이스에서는 이렇게 할 수도 있습니다.
<element/>
cs

element의 nesting: XML-element는 자식 element로 여러 XML-element를 포함 할 수 있지만 자식 element가 겹쳐서는 안 됩니다. 다시 말해 element의 end tag 이름은 가장 마지막에 나온 닫히지 않은 start tag의 이름과 같아야 한다는 뜻입니다.

아래는 잘못된 nested tag의 예입니다.
<?xml version="1.0"?>
<contact-info>
<company>TutorialsPoint
<contact-info>
</company>
cs

바르게 하려면 다음과 같아야 합니다.
<?xml version="1.0"?>
<contact-info>
<company>TutorialsPoint</company>
</contact-info>
cs

Root element: XML 문서에는 하나의 root element만 있을 수 있습니다. 예를 들어, 다음은 올바른 XML 문서가 아닙니다. x, y element가 root element없이 최상위 수준에서 발생하기 때문입니다.
<x>...</x>
<y>...</y>
cs

올바른 예는 아래와 같습니다.
<root>
   <x>...</x>
   <y>...</y>
</root>
cs

대소 문자 구분(Case sensitivity): XML-element는 대소문자를 구분합니다.
예를 들어 <contact-info><Contact-Info>와 다릅니다.


Attributes


Attribute는 name/value 쌍을 사용하여 element에 대한 단일 property를 지정합니다. XML-element는 하나 이상의 attribute를 가질 수 있습니다. 예 :

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

여기서 href는 attribute name이고 http://www.tutorialspoint.com/은 attribute value입니다.

attribute 문법 규칙

  • HTML과는 달리 XML의 attribute name은 대소문자를 구분합니다. 따라서 HREFhref는 서로 다른 두개의 attribute로 간주됩니다.
  • 동일한 attribute는 한 개의 구문에서 두 개의 value를 가질 수 없습니다. 다음 예제에서는 특성 b가 두 번 지정되었기 때문에 잘못된 구문을 보여줍니다.
<a b="x" c="y" b="z">....</a>
cs

  • attribute name은 따옴표 없이 사용하고, value는 따옴표 안에 넣습니다. 다음은 잘못된 예입니다.

<a b=x>....</a>
cs
value가 따옴표 없이 사용된 것이 잘못된 점입니다.


XML Reference


참조를 사용하면 일반적으로 XML 문서에 추가적인 텍스트 또는 마크업을 덧붙일 수 있습니다. 참조는 항상 예약 기호 "&"로 시작하고 기호 ";"로 끝납니다. XML에는 두 종류의 reference가 있습니다.

Entity reference : entity 참조는 시작과 끝 기호 사이에 이름이 들어있습니다. 예를 들어 & amp; 라고 할 때 amp는 이름입니다. 이름은 텍스트나 마크업 상에서 미리 정의된 문자열을 참조합니다.

Character reference : #(hash mark)뒤에 숫자가 오는 형식입니다. 예를 들어 &#65; 와 같습니다. 여기서 숫자는 유니코드이며, 65는 알파벳 'A'입니다.


XML text


  • XML-element와 XML-attribute는 대소문자를 구분합니다. 따라서 시작과 끝 element는 반드시 같은 문자로 사용되어야 합니다.
  • 인코딩 문제를 피하기 위해, 모든 XML 파일을 유니 코드 UTF-8 또는 UTF-16 파일로 저장해야합니다.
  • attribute나 element 사이에 존재하는 blank, tab, line-break같은 공백들은 모두 무시됩니다.
  • 어떤 문자들은 예약되어 있어서 직접 사용할 수 없습니다. 그 문자들을 사용하려면 대체 문자를 사용해야 합니다. 아래에 소개 합니다.

사용불가 문자    대체 문자         의미
     <           &lt;        less than
     >           &gt;        greater than  
     &           &amp;       ampersand
     '           &apos;      apostrophe
     "           &quot;      quotation mark

댓글 없음:

댓글 쓰기