XML ๋ฌธ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ตํ๋ค.
1.1. XML ๋ฌธ์์ ์ข ๋ฅ ¶
- XML ๋ฌธ์์ ์ข
๋ฅ๋ฅผ ๋๋์ด ๋ณด๋ฉด ๋ค์ ์ธ ๊ฐ์ง๋ก ๋๋ ์์๋ค
1 Invalid Documents : XML์ ํ๊ทธ ๊ท์น์ ๋ฐ๋ฅด์ง ์๊ฑฐ๋,DTD๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์ DTD์ ์ ์๋ ๊ท์น์ ์ ๋๋ก ๋ฐ๋ฅด์ง ์๋ ๋ฌธ์ 2 Well-Formed Documents : DTD๋ฅผ ์ฌ์ฉํ์ง๋ ์์ง๋ง,XML์ ํ๊ทธ ๊ท์น์ ๋ฐ๋ฅด๋ ๋ฌธ์ 3 Valid Documents : XML์ ํ๊ทธ ๊ท์น์ ์งํค๋ฉฐ DTD์ ์ ์๋ ๋ฐฉ์์ผ๋ก ๋ฐ๋ฅด๊ฒ ์์ฑ๋ ๋ฌธ์
- ์์ 3๊ฐ์ค Invalid Documents๋ ์ค์ XML ๋ฌธ์๋ก์์ ์ญํ ์ ํ ์ ์๋ค. XML ํ์๋ก ํ์ฑ ํ์ ๋ ๋ฐ๋ฅด๊ฒ ํ์ฑ๋์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
- 2๋ฒ์ XML ๋ฌธ์์ DTD๋ฅผ ์ฌ์ฉํ์ง์์์ง๋ง XML ๋ฌธ์ ํ๊ทธ ๊ท์น์ ๋ง๊ฒ ์์ฑ๋์์ผ๋ฏ๋ก Well-Formed ๋ฌธ์๋ก ์ฌ์ฉ๋๋ค.
- 3๋ฒ์ DTD๋ ์ฌ์ฉํ์๊ณ ํ๊ทธ ๊ท์น๋ ๋ง๊ฒ ์์ฑ๋๊ฒ์ด๋ค.
1.2. XML ๋ฌธ์์ ํ๊ทธ ๊ท์น ¶
1 ์์ ํ๊ทธ๊ฐ ์์ผ๋ฉด ๋ฐ๋์ ๋ซ๋ ํ๊ทธ๊ฐ ์ฌ์ฉ๋์ด์ ธ์ผ ํ๋ค. 2 ์์ ํ๊ทธ์ ๋์ํ๋ ๋ซ๋ ํ๊ทธ๊ฐ ์ค๊ธฐ์ ์ ์์ ํ๊ทธ์ ๋ฐ๊นฅ์ ์์นํ ํ๊ทธ์ ๋ซ๋ ํ๊ทธ๊ฐ ์์นํ์ง ์์์ผ ํ๋ค.(ํ๊ทธ๋ค์ด ๊ฒน์ณ์(orverlapped) ์ฌ์ฉ๋ ์ ์๋ค.) 3 ์ดํธ๋ฆฌ๋ทฐํธ์ ๊ฐ๋ค์ ๋๋ฐ์ดํ๋ก ๋๋ฌ์์ฌ์ผํ๋ค.
1.3. XML์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ์์ฑํ๋ ๋ฐฉ๋ฒ ¶
step1. DTD ์ฌ์ฉ ์ฌ๋ถ ์ ํ step2. DTD๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ DTD ์ ์ ๋๋ ์๋ก ์ค๊ณํ์ฌ ์์ฑ step3. Well-formed ๋๋ Validํ ๋ฌธ์๊ฐ ๋๋๋ก XML ๋ฌธ์ ์์ฑ step4. ํ์ฑ step5. ๋์คํ๋ ์ด
2.1. XML ๋ฌธ์๋ ๋ฌด์์ธ๊ฐ? ¶
- XML ๋ฌธ์๋ XML๋ก ๊ธฐ์ ๋ ๊ตฌ์กฐ์ ์ธ ์ ๋ณด๋ก ๊ตฌ์ฑ๋๋ ๋ฌธ์์ด๋ฉฐ XML1.0์คํ์ ๋ง๊ฒ ์์ฑํ๋ฉฐ XML์ ์ง์ํ๋ ํ๋ก์ธ์(๋๋ ํ๋ก๊ทธ๋จ)์์ ์ฌ์ฉํ๊ธฐ ์ํด์ Well-formed๋ Validํ ํํ๋ก ์์ฑ๋ ๋ฌธ์๋ฅผ ๋งํ๋ค. ---> ์ ์
- XML๋ฌธ์๋ ํ์คํธ ํ์ผ์ด๋ผ๋ ํํ๋ก ์ ์ฅ๋๋ฏ๋ก, XMLํ์ผ ์์ฒด๋ OS๋ ํน์ ํ๋ก๊ทธ๋จ์ ์์กด์ ์ด์ง ์๋ ํน์ฑ์ ์ง๋๋ค.
- XML๋ฌธ์๋ ๋ฌธ์๋ก์์ ์ญํ ์ ํ๊ธฐ๋ ํ์ง๋ง, ๋ฐ์ดํฐ๋ค์ ๋ด์ ์๋ ์๋ค. ์ฆ XML ๋ฌธ์๋ ํ์คํธ ํํ์ ๋ฐ์ดํฐ๋ก์์ ์ญํ ์ ํ ์๋ ์๋ค.
- XML ์์ฉํ๋ก๊ทธ๋จ์ด๋ ์ด๋ฌํ ํ์คํธ ๊ฐ์ฒด(textual object)๋ฅผ ์ฒ๋ฆฌํ์ฌ ์ฌ์ฉํ ์ ์๋ ํ๋ก๊ทธ๋จ์ด๋ค.
2.2. XML ๋ฌธ์์ ์ฉ๋ ¶
- ์ ํต์ ์ธ ๋ฌธ์๋ก์์ ๊ธฐ๋ฅ
- ๊ตฌ์กฐ์ ์ธ ํํ๋ก ๋ฌธ์๋ฅผ ์ ์ง
- ๊ตฌ์กฐ์ ๋ฌธ์ ๊ฒ์์ด๋ ๋ฌธ์์ ๊ตฌ์กฐ ์ ๋ณด๊ฐ ํ์ํ ์์ฉ์ ์ด์ฉ ,EDI DTP๋ฑ์ ์ด์ฉ,์ ์์๊ฑฐ๋ ํ๋ซํผ์ผ๋ก ์ด์ฉ
- ๊ตฌ์กฐ์ ์ธ ํํ๋ก ๋ฌธ์๋ฅผ ์ ์ง
- ๋ฐ์ดํฐ๋ก์์ ์ญํ
- XML์ SGML์ ์ข๋ ์์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋์์ผ๋ก์ ์ทจ๊ธ ํ์ง๋ง XML์ ์์ฉ๋ถ์ผ๊ฐ ํ๋๋๋ฉด์ ๋ฐ์ดํฐ๋ก์์ ์ญํ ์ด ์ ์ ์ปค์ง๊ณ ์์
- SVG(Scalable Vector Graphics)ํฌ๋งท๊ณผ ๊ฐ์ ๊ทธ๋ํฝ ๋ถ์ผ ์ ์์๊ฑฐ๋์ ํธ๋์ญ์
์ฒ๋ฆฌ, MathML๊ณผ ๊ฐ์ ์ํ์ ํํ ๋ฑ์ด ์ฌ์ฉ ์
- Kawa4.0์์๋ Project๋ Workspace์ ๋ํ ์ ๋ณด ๋ฐ ๊ธฐํ ๋ช ๊ฐ์ง ํ๋ก๊ทธ๋จ์ ๋ํ ์ ๋ณด๋ฅผ XML๋ฌธ์ ํํ๋ก ์ ์ง
- XML์ SGML์ ์ข๋ ์์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋์์ผ๋ก์ ์ทจ๊ธ ํ์ง๋ง XML์ ์์ฉ๋ถ์ผ๊ฐ ํ๋๋๋ฉด์ ๋ฐ์ดํฐ๋ก์์ ์ญํ ์ด ์ ์ ์ปค์ง๊ณ ์์
3.1. ์์ mail.xml ¶
<?xml version="1.0" encoding="KSC5601"?> <!DOCTYPE MAIL [<!ELEMENT MAIL (SUBJECT,SENDER,RECEIVER,BODY,SIGNATURE)> <!ELEMENT SUBJECT (#PCDATA)> <!ELEMENT SENDER (NAME,ADDRESS)> <!ELEMENT RECEIVER (NAME,ADDRESS)> <!ELEMENT BODY (P)*> <!ELEMENT P (#PCDATA)*> <!ELEMENT SIGNATURE (#PCDATA)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT ADDRESS (#PCDATA)> <!ATTLIST MAIL STATUS (official|informal) 'official'> <!ATTLIST ADDRESS TYPE (office|home|e-mail) 'e-mail'> ]> <MAIL STATUS="informal"> <SUBJECT>XML ์์ ์ ๋๋ค.</SUBJECT> <SENDER> <NAME>์ดํธ๋</NAME> <ADDRESS TYPE="home">์์ธ ๊ฐ๋จ๊ตฌ ์์ด๋ 000๋ฒ์ง</ADDRESS> </SENDER> <RECEIVER> <NAME>๊น๋๋</NAME> <ADDRESS TYPE="office">๋์ ์ ์ฑ๊ตฌ ๋ง๋ ๋ 111๋ฒ์ง</ADDRESS> </RECEIVER> <BODY> <P>์ด ๋ถ๋ถ์ด ๋ณธ๋ฌธ์ ๋ด์ฉ์ด ๋ค์ด๊ฐ๋ ๋ถ๋ถ์ ๋๋ค.</P> <P>๊ทธ๋ฅ ํจ๋ฌ๊ทธ๋ํ๋ณ๋ก ๋ด์ฉ์ ์ ์ผ๋ฉด ๋ฉ๋๋ค.</P> <P>์ง์ ๋ DTD์ ๋ฐ๋ผ ์์ฑํ๋ ์์ฃผ ๊ฐ๋จํ XML ๋ฌธ์ ์์ฑ ์์ ์ ๋๋ค.</P> </BODY> <SIGNATURE> ์ดํธ๋ ๋ณด๋ </SIGNATURE> </MAIL>
3.2. XML ๋ฌธ์๊ตฌ์ฑ ¶
1. Processing Instructions(Optional) : XML๋ฌธ์๋ฅผ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผ ํ ์ง๋ฅผ ๊ธฐ์ ํด ์ฃผ๋ ๋ถ๋ถ 2. DTD(Optional) : DTD๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ค DTD๋ฅผ ์ฌ์ฉํ ์ง๋ฅผ ์ ์ธํ ๋ด์ฉ๋๋ DTD๊ฐ ํฌํจ 3. Comments(Optional) 4. Element...
3.3. Processing Instructions(PI) ¶
- XML๋ฌธ์๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋์ด์ผ ํ ์ง๋ฅผ ๊ธฐ์ ํด์ฃผ๋ ๋ถ๋ถ
<?xml version="1.0" standalone="yes" encoding="KSC5601"?> <?xml-stylesheet type="text/xsl" href="price7.xsl"?>
- ์๋ตํ๋ฉด XML์ ๋ํดํธ ์
ํ
์ผ๋ก ์ฒ๋ฆฌ
- version : XML๋ฌธ์๊ฐ ์ค์ํ๋ XML ์คํ์ ๋ฒ์ ๋ฒํธ
- standalone : ์ธ๋ถ ๋งํฌ์
์ ์ธ์ ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ํ์ ์ธ๋ถ ๋งํฌ์
์ ์ธ์ผ ํ๊ฐ์ด์ ์ ์ธํ์๋ no
- encoding : ๋ฌธ์ ์์ฑ์์ ์ฌ์ฉ๋ ์ธ์ฝ๋ฉ ๋ฐฉ์์ ๊ธฐ์
- type : ์ฌ์ฉํ ์คํ์ผ ์ํธ์ ํ์
์ ๊ธฐ์ XSL(text/xsl)๊ณผ CSS(text/css)๊ฐ ์์
- href : ์ฌ์ฉํ ์คํ์ผ ์ํธ ํ์ผ์ ์์น๋ฅผ ๊ธฐ์
3.4. ์๋ฆฌ๋จผํธ ¶
- XML๋ฌธ์๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ์์ ์์ํ๊ทธ์ ๋ซ๋ ํ๊ทธ๊ฐ ์๊ณ ํ๊ทธ์์ ๋ด์ฉ์ด ์๋ฆฌ๋จผํธ์ ๊ฐ์ด๋๋ค.
<์๋ฆฌ๋จผํธ ์ด๋ฆ ์ดํธ๋ฆฌ๋ทฐํธ1="์ดํธ๋ฆฌ๋ทฐํธ1์๊ฐ"...>๋ด์ฉ</์๋ฆฌ๋จผํธ ์ด๋ฆ>
- empty element : ๋ด์ฉ์ ์๋ฌด ๊ฒ๋ ์์นํ์ง ์๋ ์๋ฆฌ๋จผํธ
<์๋ฆฌ๋จผํธ ์ด๋ฆ ์ดํธ๋ฆฌ๋ทฐํธ1=="์ดํธ๋ฆฌ๋ทฐํธ1์ ๊ฐ".../>
- ์๋ฆฌ๋จผํธ ํ์
์ ์ธ : ์๋ฆฌ๋จผํธ์ ํ์
์ DTD์ ์ ์ธํจ
<!ELEMENT ์๋ฆฌ๋จผํธ ์ด๋ฆ ์ปจํ ์ธ _์คํ>
- ์ปจํ
์ธ ์คํ์ ์ฌ์ ์๋ ๊ฒ์ EMPTY์ ANY์ด๋ค. ๋ค๋ฅธ ์๋ฆฌ๋จผํธ์ ์ด๋ฆ์ ๊ตฌ์ฑํ๋ EBNF๊ฐ ์ฌ์ ์๋ค. ๋ฌธ์ํ
์ดํฐ๋ฅผ ํฌํจํ๋ฉด #PCDATA๋ก ํ์
- EMPTY : ์ปจํ
์ธ ์คํ์ด EMPTY์ธ ๊ฒฝ์ฐ๋ผ๋ฉด ์ด ์๋ฆฌ๋จผํธ๋ ๋ด์ฉ์ผ๋ก ์๋ฌด ๊ฒ๋ ๊ฐ์ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๊ณ empty element๋ก ์ฌ์ฉ
- ANY : ๋ด์ฉ ๋ถ๋ถ์ ์ด๋ ํ ์๋ฆฌ๋จผํธ๊ฐ ๋ช ๊ฐ ๋ ์ง ์์์ ๊ด๊ณ์์ด ํ์์ ๊ด๊ณ์์ด ์์นํด๋ ๊ด์ฐฎ๋ค๋ ์๋ฏธ์ด๋ค.
- ์๋ฆฌ๋จผํธ ํ์
์ ์ธ ์
1. MAIL ์๋ฆฌ๋จผํธ์๋ SUBJECT,SENDER,RECEIVER,BODY,SIGNATUER ์๋ฆฌ๋จผํธ๊ฐ ์์๋๋ก ์์นํ๋๋ฐ ,๋ค๋ฅธ ์๋ฆฌ๋จผํธ๋ค์ ๋จ ํ๋ฒ ์์นํ์ง๋ง RECEIVER ์๋ฆฌ๋จผํธ๋ 1๊ฐ ์ด์ ์ฌ์ ์์ผ๋ฉฐ, SIGNATURE ์๋ฆฌ๋จผํธ๋ ํ ๋ฒ ๋์ค๊ฑฐ๋ ๋๋ ์ฌ์ฉํ์ง ์์๋ ๋๋ ์ <!ELEMENT MAIL (SUBJECT,SENDER,(RECEIVER)+,BODY,(SIGNATURE)?)> 2. BODY ์๋ฆฌ๋จผํธ์ P์๋ฆฌ๋จผํธ๊ฐ ํ๋ฒ๋ ์ค์ง ์๊ฑฐ๋ ์ฌ๋ฌ๋ฒ ๋ฐ๋ณตํด์ ์์นํ ์ ์๋ ์ <!ELEMENT BODY (P)*> 3. P ์๋ฆฌ๋จผํธ์ ์ด๋ค ์๋ฆฌ๋จผํธ๋ ์ง ๋๋ PCDATA๊ฐ ์์นํ๋ ์ <!ELEMENT P ANY> 4. SIGNATURE ์๋ฆฌ๋จผํธ์ PCDATA๊ฐ ์์นํ๋ ์ <!ELEMENT SIGNATURE (#PCDATA)> 5. PHONENUMBER ์๋ฆฌ๋จผํธ์ OFFICE ๋๋ HOME ๋๋ MOBILE ์๋ฆฌ๋จผํธ ์ค์์ ํ๋๊ฐ ์์นํ๊ฑฐ๋ ๋๋ ์ค์ง ์๋ ์ <!ELEMENT PHONENUMBER (OFFICE|HOME|MOBILE)?> 6. Empty Element์ ์ <!ELEMENT BR EMPTY>
1.1. PCDATA์ CDATA ¶
- PCDATA(Parsed Character Data) : XMLํ๋ก์ธ์์ ์ํด ํ์ฑ๋๋ ๋ถ๋ถ ์๋ฅผ ๋ค์ด ํ๊ทธ ๊ธฐํธ์ธ "<" ๊ธฐํธ๋ฅผ ์ฐ๋ฉด ์๋ฌ๊ฐ๋จ
- CDATA(Character Data) : XMLํ๋ก์ธ์์ ์ํด ํ์ฑ๋์ง์์ ์ด๋ ํ ๋ฌธ์ํ๋ ์์นํ ์ ์์
1.2. ์ํฐํฐ(Entity) ¶
- ์ํฐํฐ๋ ์ผ์ข
์ ๊ฐ์ ์ ์ฅ ๋จ์์ด๋ค. ๋งคํฌ๋ก๋ ์ ์ฌ
- XML ๋ฌธ์์์ ์ํฐํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์(Entity Reference)
1. ์ธ๋ถ ์ํฐํฐ์ ๋ด๋ถ ์ํฐํฐ์ ์ฌ์ฉ ๋ฐฉ๋ฒ &์ํฐํฐ ๋ช ์นญ; 2. ํ๋ผ๋ฏธํฐ ์ํฐํฐ์ ์ฌ์ฉ ๋ฐฉ๋ฒ %์ํฐํฐ ๋ช ์นญ;
- DTD ๋๋ ๋ฌธ์ ์ ์ธ๋ถ์์ ์ ์ธํ๋ ๋ฐฉ์(Entity Declaration)
1. ์ธ๋ถ ์ํฐํฐ ์ ์ธ ๋ฐฉ๋ฒ <!ENTITY ์ํฐํฐ ๋ช ์นญ SYSTEM "์ธ๋ถ XML ๋ฌธ์์ URI"> <!ENTITY ์ํฐํฐ ๋ช ์นญ PUBLIC Public_indentifier "์ธ๋ถ XML๋ฌธ์์ URI"> 2. ๋ด๋ถ ์ํฐํฐ ์ ์ธ ๋ฐฉ๋ฒ <!ENTITY ์ํฐํฐ ๋ช ์นญ "์ํฐํฐ ๋ด์ฉ"> 3. ํ๋ผ๋ฏธํฐ ์ํฐํฐ์ ์ ์ธ ๋ฐฉ๋ฒ <!ENTITY %์ํฐํฐ ๋ช ์นญ "์ํฐํฐ ๋ด์ฉ"> 4. ์ํฐํฐ๋ฅผ ์ ์ธํด์ ์ฌ์ฉํ ์๋ฅผ ๋ค์ด์ ์๋์๊ฐ์ด <!ENTITY chulsu "์ด์ฒ ์(ํ์จ 0.321 ํ๋ฐ 32 ํ์ 60)">
- ์ธ๋ถ ์ํฐํฐ : XML๋ฌธ์์ ๋ถ๋์ด ์๋นํ ์ปค์ ํ๋์ ํ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ๊ฐ ๊ณค๋ํ๊ฑฐ๋ ํ ๋ ์ ์ฉํ๊ฑฐ๋ ๋ชจ๋ํํ์ฌ์ผ ํ ๋ ์ฌ์ฉ
book.xml <?xml version="1.0" encoding="KSC5601"?> <!DOCTYPE BOOK [ <!ENTITY chapter1 SYSTEM "chapter1.xml"> <!ENTITY chapter2 SYSTEM "chapter2.xml"> ]> <BOOK> <TITLE>XML BOOK</TITLE> <CHAPTER>&chapter1;</CHAPTER> <CHAPTER>&chapter2;</CHAPTER> </BOOK> chapter1.xml <CHAPTER_TITLE>Chapter1.Instruction</CHAPTER_TITLE> chapter2.xml <CHAPTER_TITLE>Chapter2.Overview</CHAPTER_TITLE>
- ๋ด๋ถ ์ํฐํฐ : ์ฃผ๋ก ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ ๋ฌธ์ฅ์ ๋ด๋ถ ์ํฐํฐ ์ ์ธํ๊ณ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌ
drangon.xml <?xml version="1.0" encoding="KSC5601"?> <!DOCTYPE doc [ <!ENTITY ttl "๋๊ฐ ์ฉ์ ๋ฐํฑ๋๋ฅผ ๋ณด์๋๊ฐ"> ]> <doc> ์ฉ์ ๋ํด์๋ ์ด๋ฐ ์ ๋ฐ ๋ง๋ค์ด ์๊ณ ๊ด๋ จ๋ ์ฑ ๋ ์๋ค. "&ttl;"์ "๋๋๊ณค ๋ผ์"๋ฑ์ ๋ชจ๋ ์ฉ์ ๋ํ ์ฑ ์ด๋ค. "&ttl;"๋ ์ํ๋ก๋ ๋ง๋ค์ด ์ก๋ค. </doc>
- ํ๋ผ๋ฏธํฐ ์ํฐํฐ : DTD ๋ฌธ์ ๋ด์์ ์ด๊ฑฐ๋ XML๋ฌธ์ ๋ด์์ XML๋ฌธ์์ ์ ์ธ๋ถ์ธ <!DOCTYPE> ๋ถ๋ถ๊ณผ ๊ฐ์ ์ํฐํฐ ์ ์ธ๋ถ๋ ์๋ฆฌ๋จผํธ ์ ์ธ๋ถ์์๋ง ์ฌ์ฉ
ํ๋ฆฌ๋ฏธํฐ ์ํฐํฐ ์ ์ธ ์ค ์ผ๋ถ <!-- Parameter Entities--> <!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- repeatable head elements --> <!ENTITY % heading "H1|H2|H3|H4|H5|H6"> <!ENTITY % list "UL|OL"> <!ENTITY % preformatted "PRE"> ...์ค๋ต... <!ENTITY % head.content "TITLE & BASE?"> ๋ค๋ฅธ ์ํฐํฐ๋ ์๋ฆฌ๋จผํธ๋ฅผ ์ ์ธํ ๋ ํ๋ผ๋ฏธํฐ ์ํฐํฐ๋ฅผ ์ฐธ์กฐ <!ENTITY %block "P %heading; |%list; |%preformatted; |DL |DIV |NOSCRIPT | BOCKQUOTE "> <!ELEMENT HEAD O O (%head.content;) + (%(head.misc;) --document head--> ....
1.3. Public Identifier ¶
"-//Textuality//Text Standard open-hatch boilerplate//EN" Formal public Idenifer์ ๊ตฌ์ฑ 1. -๋ก ์์ํ๋๊ฒ์ ๋ฑ๋ก๋์ง ์์ ์กฐ์ง์ ๋งํจ ISO์์ ์ ๊ณตํ๋ ๊ณต์ฉ ์ํฐํฐ๋ ISO ์ฌ์ฉ 2. ๊ทธ๋ค์ ์ฌ๋์ ๋๊ฐ ๋ค์์ ๋์ค๋๊ฒ์ด ๊ธฐ๊ด๋ช Textuality๊ฐ ๊ธฐ๊ด๋ช 3. ๊ทธ๋ค์ ์ฌ๋์ฌ ๋๊ฐ ๋ค์์ ๋์ค๋๊ฒ์ด ์ค๋ธ์ ํธ ํ์ ์ฌ๊ธฐ์๋ TEXT 4. ๊ทธ๋ค์ ๊ณต๋ฐฑ๋ค์ ๋์ค๋ ๊ฒ์ด ์ด ์ค๋ธ์ ํธ์๋ํ description 5. ๊ทธ๋ค์ ์ฌ๋์ฌ ๋๊ฐ ๋ค์์ ๋์ค๋๊ฒ์ ์ด๋ค ์ธ์ด๋ฅผ ์ฌ์ฉํ๋์ง ๋์ค๋๊ฒ EN์ ์์ด KO๋ ํ๊ธ
- Public Identifier๋ ์ด๋์์ ์ฌ์ฉ๋๋๊ฐ? : ๊ณต์ฉ ์ํฐํฐ๋ ๊ณต์ฉ DTD๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ PI๊ฐ ์ฌ์ฉ๋จ
1.4. ๋ฌธ์ ์ฐธ์กฐ(Charater Reference) ¶
- ๋ฌธ์๋ฅผ XML ๋ฌธ์์์ ํ์ํ ๋ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ฌธ์ ์ํฐํฐ๋ค.
- ๋ฌธ์ ์ํฐํฐ ์ ์ธ ๋ฐฉ๋ฒ
10์ง์์ ๊ฒฝ์ฐ ์ฝ๋ ๊ฐ์ด n์ผ ๋<!ENTITY name "&#n;"> 16์ง์์ ๊ฒฝ์ฐ ์ฝ๋ ๊ฐ์ด n์ผ ๋<!ENTITY name "&@xn;">*๋ฌธ์ ์ํฐํฐ๋ก ์ ์ธ๋ ์ํฐํฐ๋ฅผ ์ฐธ์กฐ ํ๋ ๋ฐฉ๋ฒ
&name;*์ฌ์ฉ์
<?xml version="1.0" encoding="KSC5601"?> <!DOCTYPE doc [ <!ENTITY nbsp " "> <!ENTITY pound "£"> <!ENTITY yen "¥"> ]> <doc> <title> < ๊ฐ ๊ตญ์ ํตํ(์๊ตญ & ์ผ๋ณธ) > </title> <currency><country>์๊ตญ</country><name>ํ์ด๋</name><unit>£</unit></currency> <currency><country>์ผ๋ณธ</country><name>์</name><unit>¥</unit></currency> </doc>
1.5. ์ดํธ๋ฆฌ๋ทฐํธ ¶
- ์๋ฆฌ๋จผํธ์ ํน์ฑ์ ํํํ๋ ์๋จ์ผ๋ก ์ด์ฉ
<!ATTLIST element_name attribute_name attribute_type default_type "default_value"> ๋๋ <!ATTLIST element_name>
- ๋ํดํธ ํ์
#REQUIRED ์๋ฆฌ๋ฉ๋ฅด๋ฅด ์ฌ์ฉํ ๋ ๋ฐ๋์ ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๊ณ ๊ฐ๋ ์ง์ ํด ์ฃผ์ด์ผ ํจ์ ์๋ฏธํจ #IMPLIED ์๋ฆฌ๋จผํธ๋ฅผ ์ฌ์ฉํ ๋ ์ด ์ดํธ๋ฆฌ๋ทฐํธ๊ฐ ๋น ์ ธ ์๋ค๋ฉด,์ด๋ฅผ ๋ฐ๋์ XML ํ๋ก์ธ์๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ด๋ฅผ ์๋ ค์ฃผ์ด์ผ ํจ์ ์๋ฏธํจ #FIXED ์๋ฆฌ๋จผํธ๋ฅผ ์ฌ์ฉํ ๋ FIXED๋ก ํ์ ์ด ์ง์ ๋ ๊ฒฝ์ฐ์ ์ ์ธ๋ ๋ํดํธ ๊ฐ๊ณผ ๋ค๋ฅธ ๊ฐ์ ์ดํธ๋ฆฌ ๋ทฐํธ์ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์์์ ์๋ฏธํจ
- ์ฌ์ฉ์
mail์ด๋ผ๋ ์๋ฆฌ๋จผํธ์ id์ reply_required๋ผ๋ ์ดํธ๋ฆฌ๋ทฐํธ๋ฅผ ํ๋ฒ์ ์ ์ธ id ์ดํธ๋ฆฌ๋ทฐํธ์ ํ์ ์ ID์ด๊ณ ์ด ์ดํธ๋ฆฌ๋ทฐํธ๋ ๋ฐ๋์ ์ฌ์ฉํด ์ฃผ์ด์ผ ํ๋ ๊ฒ์ผ๋ก ์ ์ธ๋์๋ค. ๊ทธ๋ฆฌ๊ณ reply_required ๋ผ๋ ์ดํธ๋ฆฌ๋ทฐํธ๋ ์ด ์ดํธ๋ฆฌ๋ทฐํธ์ ๊ฐ์ผ๋ก๋ "yes"์"no"๋ง ์ฌ์ฉ๋ ์ ์์ผ๋ฉฐ ๋ง์ฝ ์ดํธ๋ฆฌ๋ทฐํธ๊ฐ ๋ช ์๋์ง ์์์ ๊ฒฝ์ฐ์๋ ๋ํ ๋ฅด ๊ฐ์ผ๋ก "yes"๋ฅผ ์ฌ์ฉํ๋ค. <!ATTLIST mail id ID #REQUIRED reply_required (yes|no) "yes') form์ด๋ผ๋ ์๋ฆฌ๋จผํธ์ method๋ผ๋ ์ดํธ๋ฆฌ๋ทฐํธ ์ ์ธ์ผ๋ก ์ดํธ๋ฆฌ๋ทฐํธ์ ๊ฐ์ ํญ์ "POST"์ด์ด์ผํจ <!ATTLIST form method CDATA #FIXED "POST"> book์ด๋ผ๋ ์๋ฆฌ๋จผํธ์ desc๋ผ๋ ์ดํธ๋ฆฌ๋ทฐํธ์ ๋ํ ์ ์ธ ์ด๊ฒฝ์ฐ์๋ desc๋ผ๋ ์ดํธ๋ฅด๋ทฐํธ๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋๊ณ ,๋ง์ฝ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์ด ์ดํธ๋ฆฌ๋ทฐํธ์ ๊ฐ์๋ White space ์ฒ๋ฆฌ๋ฅผ ํ์ง ์๊ฒ ๋ค๋ ์์ด๋ค. <!ATTLIST book desc CDATA #IMPLIED>
1.6. NOTATION ¶
- NOTATION์ Unparsed Entity๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ ์์ง์ ๋ธ๋ผ์ฐ์ ์์ ์ง์์ด ์๋จ
1.7. CDATA ์น์ ¶
์ฌ์ฉ๋ฐฉ๋ฒ <![CDATA[CDATA์ ํด๋นํ๋ ๋ฐ์ดํฐ]]> CDATA์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ ํ์ฑํ์ง ์์
1.8. DTD ¶
- ๋งํฌ์
์ ์ธ๋ค์ ๋ชจ์๋ ๊ฒ์ด๋ค. ๋งํฌ์
์ ์ธ์๋ ์๋ฆฌ๋จผํธ ์ ์ธ,์ดํธ๋ฆฌ๋ทฐํธ ์ ์ธ, ์ํฐํฐ์ ์ธ,๋
ธํ
์ด์
์ ์ธ์ด ํฌํจ
- ๋ณ๋ก์ ํ์ผ์ ์ ์ฅ๋ DTD ์ฌ์ฉ๊ฐ๋ฅ <!DOCTYPE doc SYSTEM "doc.dtd">
1.9. ๋ฐ๋ณต ์ง์์ ¶
- ํ๋ฌ์ค ๊ธฐํธ(+) : ์์๊ฐ ์์์ ์๋งํผ ๋ฐ๋ณตํด์ ๋ํ๋ ์ ์๋ค. ๋จ, ์ ์ด๋ ํ ๋ฒ์ ๋ํ๋์ผ ํ๋ค.(์ฆ, ์์๊ฐ ํ ๋ฒ ์ด์ ๋ํ๋์ผ ํ๋ค.)
- ๋ณํ(*) : ์์๊ฐ ์์ ์ ์๋ค. ๋ง์ผ ์๋ ๊ฒฝ์ฐ๋ ์์์ ์๋งํผ ๋ฐ๋ณต๋ ์ ์๋ค(์ฆ, ์์๋ 0๋ฒ์ด์ ๋ฐ๋ณตํด์ ๋ํ๋๋ค).
- ๋ฌผ์ํ(?) : ์์๊ฐ ์์ ์ ์๋ค. ๋ง์ผ ์๋ ๊ฒฝ์ฐ๋ ์์๊ฐ ๋จ ํ๋๋ง ์์ด์ผ ํ๋ค(์ฆ, ์์๋ ์๊ฑฐ๋ ํ๋๋ง ์์ด์ผ ํ๋ค.).