1. XML технологи ба Java
Tomasz Janowski
Center for Electronic Governance
post P.O. Box 3058, Macau
email tj@iist.unu.edu
tel +853 28712930
fax +853 28712940
url http://www.iist.unu.edu
2. UNU-IIST-eGov-course-XML-2
Зорилго
Хоёр үндсэн зорилго байдаг:
1) XML болон XML –тэй холбоотой тогсон ойлголтыг оюутануудад
өгөх
2) java application дээр XML боловсруулалтыг бичих чадвараа
дээшлүүлэх
a) SAX (XML-ийн энгийн application program inteface),
b) DOM (бичиг баримтын обьектийн загвар) ба
c) XSLT (өргөтгөсөн stylesheet хэлний хувиргалтууд).
3. UNU-IIST-eGov-course-XML-3
Програм
1) Оршил 3) XML технологууд
a) Үндэслэл буюу a) Мэдээллийг баталгаажуулах
шалтгаан (XML Schema)
b) Ерөнхий a) хандах (XPath)
төсөөлөл
b) хувиргах (XSLT)
c) Эх үүсвэр
d) W3C
3) XML Java боловсруулалт
a) Модон дээр суурилсан
1) XML хэл програмчлал (DOM)
a) Unicode b) Event буюу үзэгдэл дээр
b) XML суурилсан програмчлал (SAX)
c) DTD c) Тодорхой дүрмэн дээр суурилсан
d) namespaces програмчлал (XSLT)
4. UNU-IIST-eGov-course-XML-4
Цагийн хуваарь
7 өдрийн цагийн хуваарь:
• Оршил хэсэг буюу товч танилцуулга, Юникод
• XML
• DTD
• Namespaces, XML схем
• XPath, XSLT
• Java XML with DOM
• Java XML with SAX and XSLT
6. UNU-IIST-eGov-course-XML-6
Ном зүй
W3C –ийн албан ёсны документууд дараах хаяганд байрлана:
• World Wide Web Consortium, Technical Reports,
http://www.w3c.org/TR/
Өргөн хэрэглэгддэг номнууд:
• Erik T. Ray, Learning XML, O’Reilly, 2001
• Kenneth B. Stall, XML Family of Specifications, Addison Wesley, 2003
7. UNU-IIST-eGov-course-XML-7
Цаашид унших номнууд
Өргөн хэрэглэгддэг номнууд :
• Processing XML with Java, E. R. Harold, Addison Wesley
• XML Internationalisation and Localization, Yves Savourel, SAMS
• XML Topic Maps, Jack Park (Ed.), Addison Wesley
• Secure XML, D. E. Eastlake III and Kitty Niles, Addison Wesley
• XML Data Management, A. Chaudhri et. al., Addison Wesley
• ebXML, A. Walsh, Prentice Hall
• XML Distributed Systems Design, A.M. Rambhia, SAMS
• Modelling XML Applications with UML, D. Carlson, Addison Wesley
• etc.
8. UNU-IIST-eGov-course-XML-8
Түүх
Өмнө хийж байсан ажилууд:
1) September 2003, UNU-IIST, Macau, 40 hours course for Macau IT
staff from government, academia and industry.
2) October 2003 – January 2004, University of Gdańsk, Poland, 120
hours (60 hours of lectures and 60 of exercises) monograph
elective course for Master degree students.
10. UNU-IIST-eGov-course-XML-10
Програм
1) Оршил 3) XML технологууд
a) Үндэслэл буюу a) Мэдээллийг баталгаажуулах
шалтгаан (XML Schema)
b) Ерөнхий a) хандах (XPath)
төсөөлөл
b) хувиргах (XSLT)
c) Эх үүсвэр
d) W3C
3) XML Java боловсруулалт
a) Модон дээр суурилсан
1) XML хэл програмчлал (DOM)
a) Unicode b) Event буюу үзэгдэл дээр
b) XML суурилсан програмчлал (SAX)
c) DTD c) Тодорхой дүрмэн дээр суурилсан
d) namespaces програмчлал (XSLT)
23. UNU-IIST-eGov-course-XML-23
Програм
1) Оршил 3) XML технологууд
a) Үндэслэл буюу a) Мэдээллийг баталгаажуулах
шалтгаан (XML Schema)
b) Ерөнхий a) хандах (XPath)
төсөөлөл
b) хувиргах (XSLT)
c) Эх үүсвэр
d) W3C
3) XML Java боловсруулалт
a) Модон дээр суурилсан
1) XML хэл програмчлал (DOM)
a) Unicode b) Event буюу үзэгдэл дээр
b) XML суурилсан програмчлал (SAX)
c) DTD c) Тодорхой дүрмэн дээр суурилсан
d) namespaces програмчлал (XSLT)
24. UNU-IIST-eGov-course-XML-24
XML
Иймэрхүү асуудлуудыг шийдэхийн тулд XML-ийг дууддаг.
• XML нь HTML-ийг орлогч биш.
• HTML ээс (ерөнхийдөө) XML ийг агуулсан цэвэр HTML-ийн
өөрийн хувилбар болох XHTML гэж байдаг.
• XML хувьд интернет технологид илүү нэгдмэл ба уян хатан сан
үүсгэх явдал юм.
46. UNU-IIST-eGov-course-XML-46
Жишээ: XSLT 2 дээрх XML хувиргалтууд
Энд HTML үүссэн байна:
<html>
<table>
<tr><td><b>from</b></td><td>Tomasz</td></tr>
<tr><td><b>to</b></td><td>Participants</td></tr>
</table>
Welcome to the <i>XML Technology</i> course!
<img src="smiley.gif"/>
</html>
Браузерийн гаралт:
from Tomasz
to Participants
subject Hello
Welcome to the XML Technology course!
47. UNU-IIST-eGov-course-XML-47
Демо: XSLT ээс HTML үүссэн байна
> cd "demos/html generated by xslt"
> dir
welcome.xml welcome.xsl smiley.gif
> xalan welcome.xml welcome.xsl welcome.html
> ls
welcome.xml welcome.xsl welcome.html smiley.gif
> opera welcome.html
59. UNU-IIST-eGov-course-XML-59
XML ерөнхий төсөөлөл: Синтаксийн үүрэг
An XML document must be well-formed to be process-able by
XML-compliant applications:
• XML parsers are explicitly required not to process ill-formed XML,
but to exit with a suitable error message
• Браузерууд Browsers accept ill-formed HTML, trying to guess the
intentions of the document’s author.
• A lot of browser code goes to processing ill-formed HTML,
increasing complexity and decreasing predictability.
82. UNU-IIST-eGov-course-XML-82
XML-ийн ерөнхий төсөөлөл: Технологийг эмх
цэгцтэй болгох
Өөр чиг хандлага бий болоход XMLийн технологууд нь өмнөх XML
технологоо буцаан боловсруулдаг.
XHTML, гурван аятайхан зүйл байдаг:
• strict – хамгийн сайн XML руу-зөөх
• transitional –HTML нь хуучин браузеруудаа буцааж хангалттай
их ашигладаг
• frameset – string XHTML-д frame-ууд нэмэх
Уламжлалт програм хангамжаас хамаардаг XML-бишээс XML руу
зөөх.
83. UNU-IIST-eGov-course-XML-83
Жишээ: XHTML
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<body>
<table>
<tr><td><b>from</b></td><td>Tomasz</td></tr>
<tr><td><b>to</b></td><td>Participants</td></tr>
<tr><td><b>subject</b></td><td>Welcome</td></tr>
</table>
<p>Welcome to the <i>XML Technology</i> course!
<img src="smiley.gif" alt="Cheers"/></p>
</body>
</html>
84. UNU-IIST-eGov-course-XML-84
Демо: XHTML
> cd "demos/xhtml validation"
> dir
welcome.html welcome.xhtml smiley.gif
> opera welcome.html
> opera welcome.xhtml
> emacs welcome.xhtml
> opera welcome.xhtml
87. UNU-IIST-eGov-course-XML-87
Program
1) Оршил 3) XML технологууд
a) Үндэслэл буюу a) Мэдээллийг баталгаажуулах
шалтгаан (XML Schema)
b) Ерөнхий a) хандах (XPath)
төсөөлөл
b) хувиргах (XSLT)
c) Эх үүсвэр
d) W3C
3) XML Java боловсруулалт
a) Модон дээр суурилсан
1) XML хэл програмчлал (DOM)
a) Unicode b) Event буюу үзэгдэл дээр
b) XML суурилсан програмчлал (SAX)
c) DTD c) Тодорхой дүрмэн дээр суурилсан
d) namespaces програмчлал (XSLT)
88. UNU-IIST-eGov-course-XML-88
XML-ийн цаг хугацааны шугам
1967 GenCode
1969 Generalized Markup Language
1980’s GML adopted by government and industry
1986 Standard Generalized Markup Language
1989 World Wide Web = HTML + HTTP + URL
1991 World Wide Web is online
1994 XML is envisioned at the 2nd WWW Conference
1994 World Wide Web Consortium is founded
1996 W3C XML Activity Area starts
1998 XML becomes W3C Recommendation
1998 first applications of XML emerge
1999 Internet Explorer 5.0 – the first browser to support XML
89. UNU-IIST-eGov-course-XML-89
XML үүсэл: Генкод
1967 Graphic Communication Association (GCA)-ийн GenCode
төсөл нь электроникийн документуудийн контент болон
пресинтэшнийн үл хамаарах төхөөрөмжүүдийг дүрсэлсэн
тагуудыг ашиглах аргаар анх дэвшигдэж байсан.
90. UNU-IIST-eGov-course-XML-90
XML ерөнхий төсөөлөл: GML
1969 IBM ийн Charles Goldfarb, Ed Mosher and Ray Lorie
нар GM-ийг хөгжүүлсэн – тодорхойлж өгсөн тагуудыг
анх удаа ашигласан документ тэмдэгт юм. GML нь
DTD-ийг GenCode руу нэмэж өгсөн.
1980’s GML засгийн газар болон аж үйлдвэрт хэрэглэж
эхэлсэн:
1. CALS хүснэгтийг US-ийн CALS групп-с анх
гаргасан.
2. Berglund of CERN – Европийн эгэл бөөмийн
Физикийн лабратори –SGML тест системийг
хэвлэж хөгжүүлсэн.
91. UNU-IIST-eGov-course-XML-91
XML-ийн ерөнхий төсөөлөл: SGML
1978 GML ажлын хэсэг Goldfarb ба GCA Gen-Code
хорооноос American National Standards Institute (ANSI)
бүрэлдэн бий болсон .
1986 SGML –Standard Generalized Markup Language –нь
ISO стандартаар (8879:1986) баталгаажисан. SGML-
аппликашн үүсгэх синтакс тодорхойлогдсон ба
тодорхой тэмдэгтийн хэлүүдийг DTD-ийн горим руу
шилжүүлсэн.
92. UNU-IIST-eGov-course-XML-92
XML ерөнхий төсөөлөл: HTML
1989 Tim Berners-Lee анх WWW санаачилсан– access
интернэтийн том хэмжээний текст руу ханддаг систем :
1. HTTP – HyperText Transfer Protocol
2. URL – Uniform Resource Locator
3. HTML – HyperText Markup Language
HTML нь том хэмжээний текст документуудын SGML
документ төрөлтэй, энгийн бөгөөд хялбар програм.
93. UNU-IIST-eGov-course-XML-93
XML-ийн ерөнхий төсөөлөл: XML ирээдүй
1994 C. M. Sperberg-McQueen and Robert F. Goldstein,
„HTML to the Max: A Manifesto for Adding SGML
Intelligence to the WWW”, 2nd WWW Conference:
• HTML үүсэхэд GenCode-ийн зарчим нь үнэхээр их
хэрэг болсон.
• Adapt SGML for the Web? SGML is too complex.
• ямар нэгэн шинэ хэл хэрэгтэй, HTML шиг, гэхдээ
SGML-ийн ерөнхий дүр төрхийг хадгалсан байх
шаардлагатай.
• XML ирээдүйтэй.
94. UNU-IIST-eGov-course-XML-94
XML ийн ерөнхий ойлголт: W3C бүрэлдэн
бий болсон
1994 WWW Consortium ийг MIT ийн ¼ ийг эзэмшидэг MIT, INRIA
and Keio , Tim Berners-Lee-ийн удирдан анх үндэслэсэн.
1995 HTML ажлын хэсэг W3C тийн зохион байгуулалтанд
орсон.
1996 XML Activity Area, Phase 1, W3C тийн зохион
байгуулалтанд орсон.
1997 Tim Bray ба C.M.Sperberg McQueen редакторууд. XML-ийн
анхны төсөлийг буюу санаа төсөөллийг зохион байгуулж
боловсруулсан,
1998 HTML 4.0 W3C Recommendation болсон. HTML ажлын
хэсэг XHTML шинэчилсэн.
95. UNU-IIST-eGov-course-XML-95
XML ерөнхий ойлголт : XML нь W3C ийн
зохион байгуулалтанд орсон
1998 XML 1.0 W3C Recommendation болсон .анхны удаа, XML
ээс хамаардаг W3C-ийн активийн 80% хамарч байсан.
1998 XML анхны хэрэглээ: Mathematical Markup Language
(MathML) ба Chemical Markup Language (1997).
1998 XML media төрлүүд text/xml ба application/xml уудыг Internet
Engineering Task Force (IEFT) санал болгон дэвшүүлсэн.
96. UNU-IIST-eGov-course-XML-96
XML ерөнхий ойлголт : XML хэрэгжүүлэлт
1998 DOM W3C Recommendation болсон.
1999 Namespaces in XML нь W3C Recommendation болсон.
1999 RDF нь W3C Recommendation болсон.
1999 Internet Explorer 5.0 –XML-ийг дэмжидэг анхны үндсэн
браузер.
1999 “XML and the Second-Generation Web” –ийг АНУ эрдэмтэд
болох Jon Bosak ба Tim Bray нар анх хэвлэж гаргасан.
97. UNU-IIST-eGov-course-XML-97
XML ерөнхий ойлголт : Open-Source XML
Initiatives
1999 Apache XML төсөл эхэлсэн, тун удалгүй XML цэсүүд:
xerces, xalan, cocoon, batik, гэх мэт бий болсон.
1999 ebXML – worldwide төсөл, XML бизнесийн төслүүд
хэрэгжиж эхэлсэн:
• UN/CEFACT (Trade Facilitation and Electronic Business
organization) and
• OASIS (Organization for the Advancement of Structured
Information Standards).
98. UNU-IIST-eGov-course-XML-98
XML ерөнхий ойлголт : Хэрэгжүүлэлтүүд
1999 XSL and XPath W3C Recommendations болсон.
2000 XHTML W3C Recommendation болсон.
2000 Opera 4.0 XML дэмждэг болсон.
2000 Netscape 6.0 нь XML дэмждэг болсон.
2000 Amaya 4.0 HTML, XHTML, MathML, SVG дэмждэг хэлбэрээр
анх бүтээгдсэн.
99. UNU-IIST-eGov-course-XML-99
XML ерөнхий ойлголт : W3C
Recommendations
2001 XML Schema
2001 XLink and XBase
2001 Scalable Vector Graphics
2001 XSL Formatting Objects
2001 XML Information Sets
Энэ нь бодит түүх юм Түүний гэрч нь өнөөдөр юм
101. UNU-IIST-eGov-course-XML-101
Програм
1) Оршил 3) XML технологууд
a) Үндэслэл буюу a) Мэдээллийг баталгаажуулах
шалтгаан (XML Schema)
b) Ерөнхий a) хандах (XPath)
төсөөлөл
b) хувиргах (XSLT)
c) Эх үүсвэр
d) W3C
3) XML Java боловсруулалт
a) Модон дээр суурилсан
1) XML хэл програмчлал (DOM)
a) Unicode b) Event буюу үзэгдэл дээр
b) XML суурилсан програмчлал (SAX)
c) DTD c) Тодорхой дүрмэн дээр суурилсан
d) namespaces програмчлал (XSLT)
104. UNU-IIST-eGov-course-XML-104
Demo: Exploring W3C Site
> opera http://www.w3.org/
> opera http://www.w3.org/Consortium/
> opera http://www.w3.org/Consortium/Member/List
> opera http://www.w3.org/People/
105. UNU-IIST-eGov-course-XML-105
W3C-н зөвлөгөө
• W3C –н тодорхой хуультай бөгөөд тэрхүү хуулийн зөвлөгөө,
зөвлөмжийн дагуу оруулдаг.
• Баталгааны хэсэг:
once a consensus is reached on a particular specification, there
will be sufficient vendor and developer support so that compliance
results from “peer pressure”
• Энэ хэсэг нь хамгын сайн болсон ба одоогоор хэрэгжиж байгаа
тогтоомж.
113. UNU-IIST-eGov-course-XML-113
Хаяга: W3C Зөвөлгөө
> opera http://www.w3.org/TR/
> opera http://www.w3.org/TR/#Recommendations
> opera http://www.w3.org/TR/#PR
> opera http://www.w3.org/TR/#PER
> opera http://www.w3.org/TR/#CR
> opera http://www.w3.org/TR/#WD
116. UNU-IIST-eGov-course-XML-116
W3C XML Ажлын групп
XML үйл ажилгааны 5н групп:
1. XML гол ажлын групп: XML, ерөнхий бүтэц.
2. XML схемийн групп: схемийн хэл.
3. XML холбогч ажлын групп: XPointer, XLink, XML Base
4. XML тэмдэгт ажлын групп: байгуулгын асуулттай өгөгдлийн
загвар.
5. XML зохциулагч групп: XML ажлын идвэхжилийн бүх
зохциулалт.
117. UNU-IIST-eGov-course-XML-117
W3C XML ажлын групп
W3C XML үйл ажилгааны 3н групп:
1. XSL Ажлын групп: XML тээвэрлэлт болон гадаад асуудал.
2. DOM Ажлын групп: баримт бичгийн загвар боловсруулах.
3. Web Services Ажлын групп: XML-үндсэн протокол, урьдчилан
төлөвлөлт.
120. UNU-IIST-eGov-course-XML-120
Program
1) Оршил 3) XML технологууд
a) Үндэслэл буюу a) Мэдээллийг баталгаажуулах
шалтгаан (XML Schema)
b) Ерөнхий a) хандах (XPath)
төсөөлөл
b) хувиргах (XSLT)
c) Эх үүсвэр
d) W3C
3) XML Java боловсруулалт
a) Модон дээр суурилсан
1) XML хэл програмчлал (DOM)
a) Unicode b) Event буюу үзэгдэл дээр
b) XML суурилсан програмчлал (SAX)
c) DTD c) Тодорхой дүрмэн дээр суурилсан
d) namespaces програмчлал (XSLT)
128. UNU-IIST-eGov-course-XML-128
UCS Тээвэрлэлтийн хэлбэр: UTF-16
UTF-16 – 16 –н түлхүүр үг
• Each character дээд FFFF is encoded as a single 16-bit хэмжээ.
• Characters above FFFF are represented as pairs of 16-bit values:
high- and low-surrogates.
• Starts with a single character (Byte Order Mark):
FFFE – most significant byte first
FEFF – most significant byte second
129. UNU-IIST-eGov-course-XML-129
Surrogates
D800-DFFF is a surrogate block:
D800-DBFF low surrogate
DC00-DFFF high surrogate
A pair of surrogate characters (L,H) represents a character:
(H - D800) * 400 + (L - DC00) + 10000
in the range 10000-10FFFF.
133. UNU-IIST-eGov-course-XML-133
XML 1.0-н тэмдэгт хувьсахч
0001-0008 forbidden
0009 allowed – TAB
000A allowed – NEW LINE
000B-000C forbidden
000D allowed – CARRIAGE RETURN
000E-001F forbidden
0020 allowed – SPACE
0021-D7FF allowed
D800-DBFF forbidden – low surrogate
DC00-DFFF forbidden – high surrogate
E000-FFFD allowed
10000-10FFFF allowed – encoded as pairs of surrogates
XML 1.1 permits representation of arbitrary Unicode characters.
134. UNU-IIST-eGov-course-XML-134
XML ба UCS
XML онцлох хэсэг:
• XML зарлахын тулд UTF-8 ба UTF-16 түлхүүр үгнүүдийг
хэрэглэнэ.
XML багтаамж:
• XML үйл ажилгааны сонголтын хувьсахч түхүүрийг агуулдаг.
• Эдгээрийг тус тусд нь илэрхийлэх encoding чанар чанар
байдаг.
135. UNU-IIST-eGov-course-XML-135
UCS-н Alternative програмын түлхүүр үг
iso-8859-1 Western Europe big5 traditional Chinese
iso-8859-2 Central Europe gb2312 simplified Chinese
iso-8859-3 Southern Europe euc-jp Japanese (unix)
iso-8859-4 Northern Europe euc-kr Korean (unix)
iso-8859-5 Cyrillic koi8-r Russian
iso-8859-6 Arabic koi8-u Ukrainian
iso-8859-7 Greek tis-620 Thai
iso-8859-8 Hebrew windows-* Windows
iso-8859-9 Turkish cp-* IBM
iso-8859- Nordic us-ascii basic ASCII
10 … ...
... ...
137. UNU-IIST-eGov-course-XML-137
Program
1) Оршил 3) XML технологууд
a) Үндэслэл буюу a) Мэдээллийг баталгаажуулах
шалтгаан (XML Schema)
b) Ерөнхий a) хандах (XPath)
төсөөлөл
b) хувиргах (XSLT)
c) Эх үүсвэр
d) W3C
3) XML Java боловсруулалт
a) Модон дээр суурилсан
1) XML хэл програмчлал (DOM)
a) Unicode b) Event буюу үзэгдэл дээр
b) XML суурилсан програмчлал (SAX)
c) DTD c) Тодорхой дүрмэн дээр суурилсан
d) namespaces програмчлал (XSLT)
138. UNU-IIST-eGov-course-XML-138
XML 1.0 – W3C зөвөлгөөний хэсэг
• history:
– 1998онд эхний хэвлэл
– 2000 засаж залруулсан хэвлэл
• editors:
1. Tim Bray (Textuality and Netscape),
2. Jean Paoli (Microsoft),
3. C. M. Sperberg-McQueen (WorldWideWeb Consortium),
4. Eve Maler (Sun Microsystems).
139. UNU-IIST-eGov-course-XML-139
XML 1.0 – W3C зөвөлгөөний хэсэг
• abstract:
The Extensible Markup Language (XML) is a subset of SGML that is
completely described in this document. Its goal is to enable generic
SGML to be served, received, and processed on the Web in the way
that is now possible with HTML. XML has been designed for ease of
implementation and for interoperability with both SGML and HTML.
• publication:
http://www.w3.org/TR/REC-xml
140. UNU-IIST-eGov-course-XML-140
XML 1.0 – W3C зөвөлгөөний хэсэг
The core of the document is presentation of EBNF production
rules to define the legal syntax of XML documents:
document ::= prolog element Misc*
prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
XMLDecl ::= ’<?xml’ VerInfo EncodingDecl? SDDecl? S? ’?>’
VerInfo ::= S ’version’ Eq ("’" VerNum "’" | ’"’ VerNum ’"’)
VerNum ::= ([a-zA-Z0-9_.:] | ’-’)+
Eq ::= S? ’=’ S?
S ::= (#x20 | #x9 | #xD | #xA)+
There are also references to the behavior of XML processors:
Processors may signal an error if they receive documents labeled
with versions they do not support.
141. UNU-IIST-eGov-course-XML-141
XML 1.1 – W3C Candidate зөвөлгөөний хэсэг
Reasons for the new version:
• to keep up with the changing Unicode standard
• to add two more line-end characters
• to permit representation of arbitrary Unicode characters
150. UNU-IIST-eGov-course-XML-150
XML үнэлгээ: 9-12
no нэр example
9 processing instructions <?myApp ... ?>
10 XML declarations <?xml version= ... ?>
11 text declarations <?xml encoding= ... ?>
12 white space at the top level <?xml version="1.0"?>
<card>...</card>