반응형
◆ NMTOKEN
이 형식은 하나 이상의 알파벳, 숫자, 하이픈(-), 밑줄(_), 콜론(:), 마침표(.)로 구성된 값들만을 허용하며 공백을 포함 시킬 수 없습니다.
NMTOKEN 속성 값은 C++, Java, JavaScript의 변수에 적합한 이름과 매우 유사하므로 이들 이름을 내부 응용프로그램에서 자연스럽게 사용할 수 있습니다.
아래 예는 SHIP_STATE 라는 속성 이름을 선언하여 주문 내용이 선적되는 지역의 2글자 코드를 저장하도록 하고 이 속성을 NMTOKEN으로 하여 속성값이 하나 이상의 단어가 될 가능성을 배제시킵니다.
<?xml version = "1.0" standalone="yes"?>
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (CUSTOMER)*>
<!ELEMENT CUSTOMER (NAME,DATE,ORDERS)>
<!ELEMENT NAME (LAST_NAME,FIRST_NAME)>
<!ELEMENT LAST_NAME (#PCDATA)>
<!ELEMENT FIRST_NAME (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT ORDERS (ITEM)*>
<!ELEMENT ITEM (PRODUCT,NUMBER,PRICE)>
<!ELEMENT PRODUCT (#PCDATA)>
<!ELEMENT NUMBER (#PCDATA)>
<!ELEMENT PRICE (#PCDATA)>
<!ATTLIST CUSTOMER
SHIP_STATE NMTOKEN #REQUIRED>
]>
<DOCUMENT>
<CUSTOMER SHIP_STATE = "CA">
<NAME>
<LAST_NAME>Smith</LAST_NAME>
<FIRST_NAME>Sam</FIRST_NAME>
</NAME>
<DATE>October 15, 2003</DATE>
<ORDERS>
<ITEM>
<PRODUCT>Tomatoes</PRODUCT>
<NUMBER>8</NUMBER>
<PRICE>$1.25</PRICE>
</ITEM>
<ITEM>
<PRODUCT>Oranges</PRODUCT>
<NUMBER>24</NUMBER>
<PRICE>$4.98</PRICE>
</ITEM>
</ORDERS>
</CUSTOMER>
<CUSTOMER SHIP_STATE = "LA">
<NAME>
<LAST_NAME>Jones</LAST_NAME>
<FIRST_NAME>Polly</FIRST_NAME>
</NAME>
<DATE>October 20, 2001</DATE>
<ORDERS>
<ITEM>
<PRODUCT>Bread</PRODUCT>
<NUMBER>12</NUMBER>
<PRICE>$14.95</PRICE>
</ITEM>
<ITEM>
<PRODUCT>Apples</PRODUCT>
<NUMBER>6</NUMBER>
<PRICE>$1.50</PRICE>
</ITEM>
</ORDERS>
</CUSTOMER>
</DOCUMENT>
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (CUSTOMER)*>
<!ELEMENT CUSTOMER (NAME,DATE,ORDERS)>
<!ELEMENT NAME (LAST_NAME,FIRST_NAME)>
<!ELEMENT LAST_NAME (#PCDATA)>
<!ELEMENT FIRST_NAME (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT ORDERS (ITEM)*>
<!ELEMENT ITEM (PRODUCT,NUMBER,PRICE)>
<!ELEMENT PRODUCT (#PCDATA)>
<!ELEMENT NUMBER (#PCDATA)>
<!ELEMENT PRICE (#PCDATA)>
<!ATTLIST CUSTOMER
SHIP_STATE NMTOKEN #REQUIRED>
]>
<DOCUMENT>
<CUSTOMER SHIP_STATE = "CA">
<NAME>
<LAST_NAME>Smith</LAST_NAME>
<FIRST_NAME>Sam</FIRST_NAME>
</NAME>
<DATE>October 15, 2003</DATE>
<ORDERS>
<ITEM>
<PRODUCT>Tomatoes</PRODUCT>
<NUMBER>8</NUMBER>
<PRICE>$1.25</PRICE>
</ITEM>
<ITEM>
<PRODUCT>Oranges</PRODUCT>
<NUMBER>24</NUMBER>
<PRICE>$4.98</PRICE>
</ITEM>
</ORDERS>
</CUSTOMER>
<CUSTOMER SHIP_STATE = "LA">
<NAME>
<LAST_NAME>Jones</LAST_NAME>
<FIRST_NAME>Polly</FIRST_NAME>
</NAME>
<DATE>October 20, 2001</DATE>
<ORDERS>
<ITEM>
<PRODUCT>Bread</PRODUCT>
<NUMBER>12</NUMBER>
<PRICE>$14.95</PRICE>
</ITEM>
<ITEM>
<PRODUCT>Apples</PRODUCT>
<NUMBER>6</NUMBER>
<PRICE>$1.50</PRICE>
</ITEM>
</ORDERS>
</CUSTOMER>
</DOCUMENT>
◆ NMTOKENS
NMTOKENS 속성 형식은 공백으로 구분되는 여러 개의 NMTOKEN들로 속성값을 구성하도록 지정할 수 있습니다.
아래 예는 CONTACT_NAME 속성에 NMTOKENS 형식을 지정해 성과 이름을 공백으로 구분하여 지정하도록 합니다.
<?xml version = "1.0" standalone="yes"?>
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (CUSTOMER)*>
<!ELEMENT CUSTOMER (NAME,DATE,ORDERS)>
<!ELEMENT NAME (LAST_NAME,FIRST_NAME)>
<!ELEMENT LAST_NAME (#PCDATA)>
<!ELEMENT FIRST_NAME (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT ORDERS (ITEM)*>
<!ELEMENT ITEM (PRODUCT,NUMBER,PRICE)>
<!ELEMENT PRODUCT (#PCDATA)>
<!ELEMENT NUMBER (#PCDATA)>
<!ELEMENT PRICE (#PCDATA)>
<!ATTLIST CUSTOMER
CONTACT_NAME NMTOKENS #IMPLIED>
]>
<DOCUMENT>
<CUSTOMER CONTACT_NAME = "George Starr">
<NAME>
<LAST_NAME>Smith</LAST_NAME>
<FIRST_NAME>Sam</FIRST_NAME>
</NAME>
<DATE>October 15, 2003</DATE>
<ORDERS>
<ITEM>
<PRODUCT>Tomatoes</PRODUCT>
<NUMBER>8</NUMBER>
<PRICE>$1.25</PRICE>
</ITEM>
<ITEM>
<PRODUCT>Oranges</PRODUCT>
<NUMBER>24</NUMBER>
<PRICE>$4.98</PRICE>
</ITEM>
</ORDERS>
</CUSTOMER>
<CUSTOMER CONTACT_NAME = "Ringo Harrison">
<NAME>
<LAST_NAME>Jones</LAST_NAME>
<FIRST_NAME>Polly</FIRST_NAME>
</NAME>
<DATE>October 20, 2001</DATE>
<ORDERS>
<ITEM>
<PRODUCT>Bread</PRODUCT>
<NUMBER>12</NUMBER>
<PRICE>$14.95</PRICE>
</ITEM>
<ITEM>
<PRODUCT>Apples</PRODUCT>
<NUMBER>6</NUMBER>
<PRICE>$1.50</PRICE>
</ITEM>
</ORDERS>
</CUSTOMER>
</DOCUMENT>
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (CUSTOMER)*>
<!ELEMENT CUSTOMER (NAME,DATE,ORDERS)>
<!ELEMENT NAME (LAST_NAME,FIRST_NAME)>
<!ELEMENT LAST_NAME (#PCDATA)>
<!ELEMENT FIRST_NAME (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT ORDERS (ITEM)*>
<!ELEMENT ITEM (PRODUCT,NUMBER,PRICE)>
<!ELEMENT PRODUCT (#PCDATA)>
<!ELEMENT NUMBER (#PCDATA)>
<!ELEMENT PRICE (#PCDATA)>
<!ATTLIST CUSTOMER
CONTACT_NAME NMTOKENS #IMPLIED>
]>
<DOCUMENT>
<CUSTOMER CONTACT_NAME = "George Starr">
<NAME>
<LAST_NAME>Smith</LAST_NAME>
<FIRST_NAME>Sam</FIRST_NAME>
</NAME>
<DATE>October 15, 2003</DATE>
<ORDERS>
<ITEM>
<PRODUCT>Tomatoes</PRODUCT>
<NUMBER>8</NUMBER>
<PRICE>$1.25</PRICE>
</ITEM>
<ITEM>
<PRODUCT>Oranges</PRODUCT>
<NUMBER>24</NUMBER>
<PRICE>$4.98</PRICE>
</ITEM>
</ORDERS>
</CUSTOMER>
<CUSTOMER CONTACT_NAME = "Ringo Harrison">
<NAME>
<LAST_NAME>Jones</LAST_NAME>
<FIRST_NAME>Polly</FIRST_NAME>
</NAME>
<DATE>October 20, 2001</DATE>
<ORDERS>
<ITEM>
<PRODUCT>Bread</PRODUCT>
<NUMBER>12</NUMBER>
<PRICE>$14.95</PRICE>
</ITEM>
<ITEM>
<PRODUCT>Apples</PRODUCT>
<NUMBER>6</NUMBER>
<PRICE>$1.50</PRICE>
</ITEM>
</ORDERS>
</CUSTOMER>
</DOCUMENT>
반응형
'컴퓨터&IT > XML' 카테고리의 다른 글
XML - [11] 속성 형식 (Attribute type) (4) ENTITY, ENTITIES (0) | 2011.08.24 |
---|---|
XML - [10] 속성 형식 (Attribute type) (3) ID, IDREF (2) | 2011.08.24 |
XML - [8] 속성 형식 (Attribute type) (1) CDATA, 나열형, NOTATION (0) | 2011.08.24 |
XML - [7] 속성에 대한 기본값 지정하기 (0) | 2011.08.24 |
XML - [6] DTD:속성(Attribute) (0) | 2011.08.24 |