
XML μΈμ΄λ 1996λ
μ λ°λͺ
λμμ΅λλ€. κ·Έκ²μ΄ λνλμλ§μ κ·Έ μ μ© κ°λ₯μ±μ΄ μ΄λ―Έ μ€ν΄λκΈ° μμνκ³ , κ·Έλ€μ΄ κ·Έκ²μ μ μ©νλ €λ λͺ©μ μ λΉμΆμ΄ λ³Ό λ κ·Έκ²μ μ΅μ μ μ νμ΄ μλμμ΅λλ€.
λ΄κ° λ³Έ λλ€μμ XML μ€ν€λ§λ XMLμ λΆμ μ νκ±°λ μ¬λ°λ₯΄μ§ μκ² μ¬μ©νλ€κ³ ν΄λ κ³ΌμΈμ΄ μλλλ€. λμ±μ΄ μ΄λ¬ν XML μ¬μ©μ XMLμ΄ λ¬΄μμΈμ§μ λν κ·Όλ³Έμ μΈ μ€ν΄λ₯Ό 보μ¬μ£Όμμ΅λλ€.
XMLμ λ§ν¬μ
μΈμ΄μ
λλ€. μ΄κ²μ λ°μ΄ν° νμμ΄ μλλλ€.. λλΆλΆμ XML μ€ν€λ§λ μ΄λ¬ν ꡬλ³μ λͺ
μμ μΌλ‘ κ°κ³Όνμ¬ XMLμ λ°μ΄ν° νμκ³Ό νΌλνμ¬ μ€μ λ‘ νμν λ°μ΄ν° νμμ΄κΈ° λλ¬Έμ XMLμ μ ννλ μ€μλ₯Ό μ΄λνμ΅λλ€.
λ무 μμΈν μ€λͺ
νμ§ μκ³ λ XMLμ ꡬ쑰μ λ©νλ°μ΄ν°λ‘ ν
μ€νΈ λΈλ‘μ μ£Όμμ μΆκ°νλ λ° κ°μ₯ μ ν©ν©λλ€. μ£Όμ λͺ©νκ° ν
μ€νΈ λΈλ‘μΌλ‘ μμ
νλ κ²μ΄ μλλΌλ©΄ XMLμ μ ννλ κ²μ΄ νλΉνμ§ μμ κ²μ
λλ€.
μ΄λ° κ΄μ μμ XML μ€ν€λ§κ° μΌλ§λ μ λ§λ€μ΄μ‘λμ§ νμΈν μ μλ κ°λ¨ν λ°©λ²μ΄ μλ€. μλν μ€ν€λ§μ λ¬Έμλ₯Ό μλ‘ λ€μ΄ λͺ¨λ νκ·Έμ μμ±μ μ κ±°ν΄ λ³΄κ² μ΅λλ€. λ¨μ λ΄μ©μ΄ μλ―Έκ° μλ κ²½μ°(λλ λΉ μ€μ΄ λ¨μ μλ κ²½μ°) μ€ν€λ§κ° μ¬λ°λ₯΄κ² ꡬμΆλμ§ μμκ±°λ λ¨μν XMLμ μ¬μ©νμ§ λ§μμ΄μΌ νλ κ²μ λλ€.
μλμμλ μλͺ» ꡬμ±λ νλ‘μ κ°μ₯ μΌλ°μ μΈ μλ₯Ό λͺ κ°μ§ μ μνκ² μ΅λλ€.
<roΠΎt>
<item name="name" value="John" />
<item name="city" value="London" />
</roΠΎt>μ¬κΈ°μμλ XMLλ‘ κ°λ¨ν ν€-κ° μ¬μ μ νννλ €λ κ·Όκ±°κ° μκ³ μ΄μν(λ§€μ° μΌλ°μ μΈ) μλμ μλ₯Ό λ³Ό μ μμ΅λλ€. λͺ¨λ νκ·Έμ μμ±μ μ κ±°νλ©΄ λΉ νμ΄ λ¨κ² λ©λλ€. λ³Έμ§μ μΌλ‘ μ΄ λ¬Έμλ μ무리 ν°λ¬΄λμμ΄ λ€λ¦¬λλΌλ λΉ μ€μ λν μλ―Έλ‘ μ μ£Όμμ λλ€.
<root name="John" city="London" />μ€μκ°μμΌλ‘, μ¬μ μ νννλ μ¬μΉμ€λ¬μ΄ λ°©λ²μΌλ‘ μ¬κΈ°μ λΉ λ¬Έμμ΄μ μλ―Έ μ£Όμμ΄ μλ κ²μ΄ μλλλ€. μ΄λ²μλ "μ¬μ "μ΄ λ£¨νΈ μμμ μμ±μΌλ‘ μ§μ μΈμ½λ©λ©λλ€. μ΄λ μμμ μ§μ λ μμ± μ΄λ¦ μΈνΈλ₯Ό μ μλμ§ μκ³ λμ μΌλ‘ λ§λλλ€. λν μ μκ° μ€μ λ‘ νννκ³ μΆμλ κ²μ λ¨μν ν€-κ° κ΅¬λ¬Έμ΄μμ§λ§ κ·Έ λμ XMLμ μ μ©νκΈ°λ‘ ν μμ ν κΈ°κ΄΄ν κ²°μ μ λ΄λ € μμ± κ΅¬λ¬Έμ μ¬μ©νκΈ° μν μ λμ¬λ‘ λ¨μΌ λΉ μμλ₯Ό μ¬μ©νλλ‘ κ°μνμ΅λλ€. κ·Έλ¦¬κ³ μ λ κ·Έλ¬ν κ³νμ μμ£Ό μ ν©λλ€.
<roΠΎt>
<item key="name">John</item>
<item key="city">London</item>
</roΠΎt>μ΄κ²μ λ λμ κ²μ΄μ§λ§ μ΄μ μ΄λ€ μ΄μ λ‘ ν€λ λ©νλ°μ΄ν°μ΄κ³ κ°μ κ·Έλ μ§ μμ΅λλ€. μ¬μ μ 보면 λ§€μ° μ΄μν©λλ€. λͺ¨λ νκ·Έμ μμ±μ μ κ±°νλ©΄ μ 보μ μ λ°μ΄ μμ€λ©λλ€.
XMLμ μ¬λ°λ₯Έ μ¬μ ννμμ λ€μκ³Ό κ°μ΅λλ€.
<roΠΎt>
<item>
<key>Name</key>
<value>John</value>
</item>
<item>
<key>City</key>
<value>London</value>
</item>
</roΠΎt>κ·Έλ¬λ μ¬λλ€μ΄ XMLμ λ°μ΄ν° νμμΌλ‘ μ¬μ©νκ³ μ΄λ₯Ό μ΄ν ꡬμ±μ μ¬μ©νκΈ°λ‘ μ΄μν κ²°μ μ λ΄λ Έλ€λ©΄ μμ μ΄ νκ³ μλ μμ μ΄ λΆμ μ νκ³ νΈλ¦¬νμ§ μλ€λ κ²μ μ΄ν΄ν΄μΌ ν©λλ€. λν λμμ΄λκ° μμ© νλ‘κ·Έλ¨μ λ§λ€ λ μ€μλ‘ XMLμ μ ννλ κ²½μ°λ λ§μ΅λλ€. κ·Έλ¬λ ν¨μ¬ λ μμ£Ό κ·Έλ€μ XMLμ΄ λ¨μν μ¬κΈ°μ μ ν©νμ§ μλ€λ μ¬μ€μ 무μνκ³ μμ μ€λͺ λ νμ μ€ νλλ‘ XMLμ 무μλ―Ένκ² μ¬μ©ν¨μΌλ‘μ¨ μν©μ λμ± μ νμν΅λλ€.
μ΅μ μ XML μ€ν€λ§? 그건 κ·Έλ κ³ , μκΈμ λ΄κ° λ³Έ μ΅μ μ XML μ€ν€λ§, Polycom IP μ ν ν΅μ μ© μλ νλ‘λΉμ λ κ΅¬μ± νμΌ νμμ κ°μ Έμ΅λλ€. μ΄λ¬ν νμΌμλ TFTPλ₯Ό ν΅ν΄ XML μμ² νμΌμ λ€μ΄λ‘λν΄μΌ ν©λλ€. μΌλ°μ μΌλ‘ λ€μμ ν΄λΉ νμΌ μ€ νλμμ λ°μ·ν κ²μ λλ€.
<softkey
softkey.feature.directories="0"
softkey.feature.buddies="0"
softkey.feature.forward="0"
softkey.feature.meetnow="0"
softkey.feature.redial="1"
softkey.feature.search="1"
softkey.1.enable="1"
softkey.1.use.idle="1"
softkey.1.label="Foo"
softkey.1.insert="1"
softkey.1.action="..."
softkey.2.enable="1"
softkey.2.use.idle="1"
softkey.2.label="Bar"
softkey.2.insert="2"
softkey.2.action="..." />μ΄κ²μ λκ΅°κ°μ λμ λλ΄μ΄ μλλλ€. κ·Έλ¦¬κ³ μ΄κ²μ λ΄ λ°λͺ νμ΄ μλλλ€.
- μμλ λ¨μν μμ±μ 첨λΆνκΈ° μν μ λμ¬λ‘ μ¬μ©λλ©°, μμ± μ체μλ κ³μΈ΅μ μ΄λ¦μ΄ μμ΅λλ€.
- νΉμ λ μ½λ μ νμ μ¬λ¬ μΈμ€ν΄μ€μ κ°μ ν λΉνλ €λ©΄ μμ± μ΄λ¦μ μ¬μ©ν΄μΌ ν©λλ€. μΈλ±μ€κ° μλ κ².
- λν λ€μμΌλ‘ μμνλ μμ±μ
softkey., μμμ λ°°μΉν΄μΌ ν©λλ€.<softkey/>, λ€μμΌλ‘ μμνλ μμ±feature., μμμ λ°°μΉν΄μΌ ν©λλ€.<feature/>λ±, μμ ν λΆνμνκ³ μΈλ»λ³΄κΈ°μλ μλ―Έκ° μμ΄ λ³΄μ΄μ§λ§. - κ·Έλ¦¬κ³ λ§μ§λ§μΌλ‘ μμ± μ΄λ¦μ 첫 λ²μ§Έ κ΅¬μ± μμκ° νμ μμ μ΄λ¦κ³Ό λμΌνκΈ°λ₯Ό λ°λλ€λ©΄ κ·Έλ° κ²μ μμ΅λλ€! μλ₯Ό λ€μ΄ μμ±
up.μ 첨λΆν΄μΌ ν©λλ€.<userpreferences/>. μμμ μμ± μ΄λ¦μ 첨λΆνλ μμλ μμμ μ΄λ©° κ±°μ μλ²½ν©λλ€.
λ¬Έμ λλ λ°μ΄ν°. λλλ‘ λκ΅°κ° XMLκ³Ό JSONμ λΉκ΅νμ¬ μμ ν μ΄μν μΌμ νμ¬ λ μ€ νλλ μ΄ν΄νμ§ λͺ»νλ€λ κ²μ 보μ¬μ€λλ€. XMLμ λ¬Έμ λ§ν¬μ μΈμ΄μ λλ€. JSONμ ꡬ쑰νλ λ°μ΄ν° νμμ΄λ―λ‘ μλ‘ λΉκ΅νλ κ²μ λ°λ»ν κ²κ³Ό λΆλλ¬μ΄ κ²μ λΉκ΅νλ €λ κ²κ³Ό κ°μ΅λλ€.
μ°¨μ΄μ μ κ°λ λ¬Έμμ λ°μ΄ν°. XMLκ³Ό μ μ¬νκ² κΈ°κ³κ° μ½μ μ μλ λ¬Έμλ₯Ό 쑰건λΆλ‘ κ°μ Έμ¬ μ μμ΅λλ€. κΈ°κ³κ° μ½μ μ μλλ‘ μλλμμ§λ§ μμ μ μΌλ‘λ λ¬Έμλ₯Ό μλ―Ένλ©° μ΄λ¬ν κ΄μ μμ λ³Ό λ μ€μ λ‘ κΈ°κ³κ° μ½μ μ μλ κ²½μ°κ° κ°μ₯ λ§μ PDF λ¬Έμμ μ μ¬ν©λλ€.
μλ₯Ό λ€μ΄ XMLμμλ μμμ μμκ° μ€μν©λλ€. κ·Έλ¬λ JSONμμλ κ°μ²΄ λ΄ ν€-κ° μμ μμκ° μλ―Έκ° μκ³ μ μλμ§ μμ΅λλ€. ν€-κ° μμ μμκ° μ§μ λμ§ μμ μ¬μ μ μ»μΌλ €λ κ²½μ° ν΄λΉ νμΌμ μμκ° λνλλ μ€μ μμλ μ€μνμ§ μμ΅λλ€. νμ§λ§ μ΄ λ°μ΄ν°λ‘λΆν° λ€μν μ νμ λ°μ΄ν°λ₯Ό νμ±ν μ μμ΅λλ€. μλ₯, λ¬Έμμλ νΉμ μμκ° μκΈ° λλ¬Έμ λλ€. μΈμλ¬Όμ΄λ PDF νμΌκ³Ό λ¬λ¦¬ 물리μ ν¬κΈ°λ μμ§λ§ μμ μ μΌλ‘ μ’ μ΄μ μ ν λ¬Έμμ μ μ¬ν©λλ€.
μ μ ν XML μ¬μ ννμ μλ JSON ννκ³Ό λ°λλ‘ μ¬μ μ μμ μμλ₯Ό 보μ¬μ€λλ€. λλ μ΄ μμλ₯Ό 무μν μ μμ΅λλ€. μ΄ μ νμ±μ λ¬Έμ λͺ¨λΈκ³Ό XML νμμ λ΄μ¬λμ΄ μμ΅λλ€. μ΄λ€ μ¬λλ€μ μ΄ XML λ¬Έμλ₯Ό ν΄μν λ μμλ₯Ό 무μνκΈ°λ‘ μ νν μλ μμ§λ§, μ΄ λ¬Έμ λ νμ μ체μ λν λ Όμ λ²μλ₯Ό λ²μ΄λλ―λ‘ μ΄μ λν΄ λ Όμν νμλ μμ΅λλ€. λμ±μ΄, CSS μ€νμΌ μνΈλ₯Ό λ¬Έμμ 첨λΆνμ¬ λΈλΌμ°μ μμ λ¬Έμλ₯Ό λ³Ό μ μλλ‘ νλ©΄ μ¬μ μμκ° νΉμ μμλ‘λ§ λνλλ κ²μ λ³Ό μ μμ΅λλ€.
μ¦, μ¬μ (ꡬ쑰νλ λ°μ΄ν° μ‘°κ°)μ λ€μκ³Ό κ°μ΄ λ³νλ μ μμ΅λλ€. n λ€μν κ°λ₯ν λ¬Έμ(XML, PDF, μ’ μ΄ λ±) n - μ¬μ μ μλ μμμ κ°λ₯ν μ‘°ν© μμ΄λ©° λ€λ₯Έ κ°λ₯ν λ³μλ μμ§ κ³ λ €νμ§ μμμ΅λλ€.
κ·Έλ¬λ λ°μ΄ν°λ§ μ μ‘νλ €λ κ²½μ° κΈ°κ³ νλ κ°λ₯ν λ¬Έμλ₯Ό μ¬μ©νλ κ²μ ν¨κ³Όμ μ΄μ§ μμ΅λλ€. μ΄ κ²½μ° λΆνμν λͺ¨λΈμ μ¬μ©νλ―λ‘ λ°©ν΄κ° λ λΏμ λλ€. λν μλ³Έ λ°μ΄ν°λ₯Ό μΆμΆνλ €λ©΄ νλ‘κ·Έλ¨μ μμ±ν΄μΌ ν©λλ€. μ΄λ μμ μμ λ¬Έμ νμμ΄ μ§μ λμ§ μλ νλͺ©(μ: CSSλ XSLT λλ λ λ€ μ¬μ©)μ λν΄ XMLμ μ¬μ©νλ κ²μ κ±°μ μλ―Έκ° μμ΅λλ€. μλνλ©΄ κ·Έκ²μ΄ μ μΌν μ΄μ λ μλμ§λ§ μ£Όλ μ΄μ μ΄κΈ° λλ¬Έμ λλ€. λ¬Έμ λͺ¨λΈμ.
λμ±μ΄ XMLμλ μ«μ(λλ λΆμΈ ννμ λλ κΈ°ν λ°μ΄ν° μ ν) κ°λ μ΄ μμΌλ―λ‘ μ΄ νμμΌλ‘ ννλ λͺ¨λ μ«μλ λ¨μ§ μΆκ° ν μ€νΈλ‘ κ°μ£Όλ©λλ€. λ°μ΄ν°λ₯Ό μΆμΆνλ €λ©΄ μ€ν€λ§μ ννλλ ν΄λΉ λ°μ΄ν°μμ κ΄κ³λ₯Ό μμμΌ ν©λλ€. λν μν©μ λ°λΌ νΉμ ν μ€νΈ μμκ° μ«μλ₯Ό λνλ΄κ³ μ«μλ‘ λ³νλμ΄μΌ νλ κ²½μ°λ μμμΌ ν©λλ€.
λ°λΌμ XML λ¬Έμμμ λ°μ΄ν°λ₯Ό μΆμΆνλ κ³Όμ μ μλ₯Ό λ€μ΄ λ§μ νμ΄μ§μ μ«μ λ°μ΄ν°λ₯Ό ꡬμ±νλ ν μ΄λΈμ ν¬ν¨νλ μ€μΊλ λ¬Έμλ₯Ό μΈμνλ κ³Όμ κ³Ό ν¬κ² λ€λ₯΄μ§ μμ΅λλ€. μ, μμΉμ μΌλ‘λ κ°λ₯νμ§λ§ λ€λ₯Έ μ΅μ μ΄ μ ν μλ μ΅νμ μλ¨μ μ μΈνκ³ λ μ΄κ²μ΄ κ°μ₯ μ΅μ μ λ°©λ²μ μλλλ€. ν©λ¦¬μ μΈ ν΄κ²°μ± μ λ°μ΄ν°λ₯Ό νΉμ ν μ€νΈ ννκ³Ό κ²°ν©νλ λ¬Έμ λͺ¨λΈμ ν¬ν¨λμ§ μμ μλ³Έ λ°μ΄ν°μ λμ§νΈ 볡μ¬λ³Έμ μ°Ύλ κ²μ λλ€.
μ¦, XMLμ΄ λΉμ¦λμ€μμ λ리 μ¬μ©λλ€λ μ¬μ€μ μ ν λλμ§ μμ΅λλ€. κ·Έ μ΄μ λ λ°λ‘ λ¬Έμ νμ(μ’ μ΄)μ΄ λΉμ¦λμ€μ μ΄ν΄νκΈ° μ½κ³ μΉμνλ©°, μΉμνκ³ μ΄ν΄νκΈ° μ¬μ΄ λͺ¨λΈμ κ³μ μ¬μ©νκΈ°λ₯Ό μνκΈ° λλ¬Έμ λλ€. κ°μ μ΄μ λ‘ κΈ°μ μμλ κΈ°κ³κ° μ½μ μ μλ νμ λμ PDF λ¬Έμλ₯Ό μ¬μ©νλ κ²½μ°κ° λ무 λ§μ΅λλ€. μ΄λ μ¬μ ν νΉμ 물리μ ν¬κΈ°μ μΈμλ νμ΄μ§ κ°λ μ λ¬Άμ¬ μκΈ° λλ¬Έμ λλ€. μ΄λ μΈμλ κ°λ₯μ±μ΄ κ±°μ μλ λ¬Έμ(μ: λ μ§μ€νΈλ¦¬ λ¬Έμμ 8000νμ΄μ§ PDF)μλ μ μ©λ©λλ€. μ΄λ¬ν κ΄μ μμ λ³Ό λ λΉμ¦λμ€μμ XMLμ μ¬μ©νλ κ²μ λ³Έμ§μ μΌλ‘ μ€νμ΄λͺ¨νΌμ¦μ ννμ λλ€. μ¬λλ€μ μ νλ ν¬κΈ°μ μΈμλ νμ΄μ§μ λν μμ μ μμ΄λμ΄λ₯Ό μ΄ν΄νκ³ , μΈμλ λ¬Έμλ₯Ό κΈ°λ°μΌλ‘ λΉμ¦λμ€ νλ‘μΈμ€λ₯Ό μμ±νλ λ°©λ²μ μ΄ν΄ν©λλ€. κ·Έκ²μ΄ μ¬λ¬λΆμ κ°μ΄λλΌλ©΄ κΈ°κ³κ° μ½μ μ μλ 물리μ ν¬κΈ° μ νμ΄ μλ λ¬Έμ(XML λ¬Έμ)λ μ΅μνκ³ νΈμν λ¬Έμ μ¬λ³Έμ΄λ©΄μ νμ μ λνλ λλ€. μ΄λ λ°μ΄ν°λ₯Ό νμνλ λΆμ ννκ³ μ§λμΉκ² μ€νμ΄λͺ¨ν½μ μΈ λ°©μμΌλ‘ λ¨μ μλ κ²μ λ°©μ§νμ§ λͺ»ν©λλ€.
νμ¬κΉμ§ λ΄κ° μκ³ μλ νμμ μ ν¨ν μ¬μ©μ΄λΌκ³ ν μ μλ μ μΌν XML μ€ν€λ§λ XHTMLκ³Ό DocBookμ
λλ€.
μΆμ² : habr.com
