М И Н И СТ Е РСТ В О О Б РА ЗО В А Н И Я РО ССИ Й СК О Й Ф Е Д Е РА Ц И И В О РО Н Е Ж СК И Й ГО СУ Д А РСТ В Е Н Н ЫЙ У Н И В Е РСИ Т Е Т
М А Т Е М А Т И ЧЕ СК И Й Ф А К У ЛЬТ Е Т К А Ф Е ДР А У Р А В Н Е Н И Й В Ч А С Т Н Ы Х П Р О И З В О ДН Ы Х И Т Е О Р И И В Е Р О Я Т Н О С Т Е Й
О снов ы Internet-технологий для математиков В в едениев XML
М Е ТОД И Ч Е СК И Е У К А ЗА Н И Я для ст удент о в5-6 курсо в кафедрально й группы специализации м ат ем ат ич еско го факультет а
Ч а сть1
С о ста ви те л ь: С .Д . М а хо рто в
В о ро не ж 2002
2
С о д е рж а ни е 1. В вед е ни е ....................................................................................................... 3 2. С о зд а ни е XML – д о куме нто в...................................................................... 3 2.1. С о зд а ни е и о то бра ж е ни е про сте йш е го XML – д о куме нта .................. 3 2.2. Пра ви л ьно о ф о рмл е нны е XML – д о куме нты ....................................... 5 2.3. Ко мме нта ри и , и нструкци и и ра зд ел ы си мво л ьны х д а нны х ................ 9 2.4. Д о пусти мы е XML – д о куме нты ............................................................ 9 2.4.1. Объявл е ни е ти па д о куме нта .......................................................... 10 2.4.2. Объявл е ни е ти по в эл е ме нто в......................................................... 11 2.4.3. Объявл е ни е а три буто в ................................................................... 13 2.4.4. И спо л ьзо ва ни е вне ш ни х DTD ....................................................... 15 2.5. Опре д е л е ни е и и спо л ьзо ва ни е сущ но сте й.......................................... 17 3. Ото бра ж е ни е XML – д о куме нто в.............................................................. 19 4. MathML – язы к о пи са ни я ма тема ти че ски х ф о рмул ................................. 20 5. Ли те ратура и ссы л ки в И нтернете............................................................. 22
3
В ве д е ни е Ра сш и ряе мы й язы к ра зме тки Extensible Markup Language (XML) явл яе тся на и бо л е е пе рспе кти вны м язы ко м д л я хра не ни я, о бме на и ви зуа л ьно го пре д ста вл е ни я ко мпьюте рно й и нф о рма ци и , а та кж е публ и ка ци и и нф о рма ци и в И нте рне те . Он и ме е т ги бки й си нта кси с, что по зво л яе т е го и спо л ьзо ва ть д л я о пи са ни я пра кти че ски л юбо го ви д а и нф о рма ци и , о то бы чно го те кста д о сл о ж но й ба зы д а нны х. Кро ме это го , XML - д о куме нты мо гутэф ф е кти вно о то бра ж а ться в Web - бра узе ра х. Та ки м о бра зо м, XML о бе спе чи ва е т и д е а л ьно е ре ш е ни е при о бра бо тке все бо л е е уве л и чи ва ющ е го ся по то ка и нф о рма ци и , ко то ра я ра зме щ а е тся в Web. Ф а кти че ски XML - это не ка ко й-л и бо о пи сы ва е мы й язы к, а ско ре е ме та язы к, ко то ры й и спо л ьзуе тся в ка че стве сре д ства д л я о пи са ни я гра мма ти ки д руги х, пре д ме тны х, язы ко в и ко нтро л я за пра ви л ьно стью со ста вл е ни я д о куме нто в. Пре д ме тны е язы ки ра зме тки , ра зра бо та нны е с по мо щ ью пра ви л XML, на зы ва ются XML-при л о ж е ни ями . Я рки м при ме ро м зд е сь мо ж е т сл уж и ть Mathematical Markup Language (MathML), о сно ва нны й на XML. Э то язы к, с по мо щ ью ко то ро го ма те ма ти че ски е по няти я и ф о рмул ы мо гут не то л ько ко рре ктны м о бра зо м о то бра ж а ться на стра ни ца х Web, но и пе ре д а ва ться ме ж д у про гра мма ми ка к зна ча щ и е эл е ме нты . При л о ж е ни я XML не сл е д уе т пута ть с про гра ммны ми при л о ж е ни ями , о бра ба ты ва ющ и ми XML-д о куме нты . Они на зы ва ются зд е сьXML-про це ссо ра ми . Ц е л ь на сто ящ е й ра бо ты - ука за ть на пра вл е ни е и о бл е гчи ть на ча л ьно е и зуче ни е XML с по мо щ ью на учно -те хни че ско й л и те ра туры (на при ме р, [1, 2]). Она ре ко ме нд уе тся студ е нта м ста рш и х курсо в ма те ма ти че ски х ф а кул ьте то в. В I ча сти ме то д и че ски х ука за ни й (ра зд е л 2) по д ро бно ра ссмо тре ны во про сы л о ги че ско го по стро е ни я д о куме нто в XML. Ра зд е л ы 3-4 л и ш ь а но нси руют ма те ри а л , ко то ры й а вто р пл а ни руе твкл ючи тьво II ча стьме то д и че ски х ука за ни й. 2. С о зд а ни е XML – д о куме нто в 2.1. С о зд а ни е и о то бра ж е ни е про сте йш е го XML – д о куме нта Опи са ни е XML-д о куме нта пре д ста вл яе тсо бо й про сто й те кст, ко то ры й мо ж но на бра ть в л юбо м те ксто во м ре д а кто ре , на при ме р, Notepad. Откро йте в ва ш е м те ксто во м ре д а кто ре но вы й ф а йл . В ве д и те те кст XML-д о куме нта , пре д ста вл е нны й ни ж е , и со хра ни те ф а йл по д и ме не м Inventory.xml.
4
<TITLE>Dynamic HTML: Руко во д ство ра зра бо тчи ка С ти ве н Х о л ьцне р мягка я о бл о ж ка 400 с. 66 руб. <TITLE>XML. Ш а г за Ш а го м М а йкл Я нг мягка я о бл о ж ка 384 с. 140 руб. <TITLE>Ра зра бо тка по л ьзо ва те л ьско го и нте рф е йса Те о М а нд е л мягка я о бл о ж ка 416 с. 173 руб. <TITLE>Delphi 5. Руко во д ство ра зра бо тчи ка Ф а ро но в В .В ., Ш ума ко в П.В . мягка я о бл о ж ка 640 с. 200 руб. <TITLE>И зуча е м XML Э ри к Ре й мягка я о бл о ж ка 408 с. 180 руб. Ка ж д ы й XML-д о куме нтра зме ча е тся та к на зы ва е мы ми т ега ми. Те г – это те кст, за кл юче нны й в угл о вы е ско бки (< >), ко то ры й не о тно си тся к со д е рж а ни ю д о куме нта , а о тме ча е т на ча л о и л и ко не ц ка ко го -л и бо эл е ме нта . Э л е ме нты о пре д е л яют л о ги че скую структуру д о куме нта и не сут в се бе и нф о рма ци ю, со д е рж а щ уюся в д о куме нте . Любо й эл е ме нтXML –д о куме нта и ме е тна ча л ьны й те г, за д а ющ и й и мя эл е ме нта и д о по л ни те л ьную и нф о рма ци ю, и ко не чны й те г, со д е рж а щ и й то ж е и мя эл е ме нта со зна ко м “/” впе ре д и . И мя эл е ме нта счи та е тся
5
та кж е е го ти по м. Э л е ме нты XML-д о куме нта мо гут бы ть вл о ж е нны ми . При ве д е нны й вы ш е XML-д о куме нтсо сто и ти з д вух о сно вны х ча сте й: пролога и корневого э лемент а , на зы ва е мо го та кж е э лемент ом документ а . Э л е ме нт д о куме нта на зы ва е тся зд е сь INVENTORY. Е го на ча л ьны й те г -
, ко не чны й те г - , а со д е рж и мо е – 5 вл о ж е нны х эл е ме нто в BOOK. В сво ю о че ре д ь, ка ж д ы й эл е ме нт BOOK со д е рж и т ряд вл о ж е нны х эл е ме нто в. Оче ви д но , это тд о куме нтпре д ста вл яе тсо бо й ка рто те ку кни г. З а кро йте ва ш те ксто вы й ре д а кто р. Д л я о то бра ж е ни я д о куме нта в па пке на и ме ни ф а йл а Inventory.xml сд е л а йте д во йно й щ е л чо к мы ш ью. Е сл и на ко мпьюте ре уста но вл е н Internet Explorer 5 (в д а л ьне йш е м IE5), то о н о то бра зи т д о куме нт на экра не , пре д ва ри те л ьно про ве ри в е го си нта кси с. При на л и чи и о ш и бо к вме сто д о куме нта на экра н буд е т вы д а но со о бщ е ни е о не во змо ж но сти о то бра зи тьстра ни цу. Э то мо ж но про ве ри ть, вво д я и скусстве нны е о ш и бки . По ка вы не за д а ва л и ф о рма то то бра ж е ни я XML-д о куме нта на экра не , бра узе р при ме няе т спо со б, при няты й по умо л ча ни ю. Од ни м и з ва ри а нто в ука за ни я спо со ба о то бра ж е ни я д о куме нта явл яе тся со зд а ни е д л я не го та бл и цы ка ска д ны х сти л е й (CSS). С это й це л ью на бе ри те в те ксто во м ре д а кто ре пре д ста вл е нны й ни ж е те ксти со хра ни те е го по д и ме не м Inventory01.css. /* И мя ф а йл а : Inventory01.css */ BOOK {display:block; margin-top:12pt; font-size:10pt} TITLE {font-style:italic} AUTHOR {font-weight:bold} По сл е это го в ф а йл е Inventory.xml по сл е вто ро й стро ки по ме сти те сл е д ующ ую: и со хра ни те по л уче нны й ф а йл по д и ме не м Inventory01.xml. С д е л а в те пе рь д во йно й щ е л чо к мы ш ью на это м ф а йл е , вы уви д и те за д а нно е ва ми о то бра ж е ни е XML-д о куме нта . Бо л е е по д ро бно та бл и цы сти л е й буд утра ссмо тре ны по зд не е . 2.2. Пра ви л ьно о ф о рмл е нны е XML – д о куме нты Пра ви л ьно о ф о рмл е нны м (well-formed) XML-д о куме нто м на зы ва е тся д о куме нт, уд о вл е тво ряющ и й ми ни ма л ьно му на бо ру пра ви л со о тве тстви я д л я
6
XML-д о куме нта . Ка к уж е ука зы ва л о сьвы ш е , про гра ммы , о бра ба ты ва ющ и е XMLд о куме нты , на зы ва ются XML-про це ссо ра ми . Пра ви л ьно о ф о рмл е нны й д о куме нт мо ж е тбы тьо бра бо та н XML-про це ссо ро м. Пра ви л ьно о ф о рмл е нны й XML-д о куме нт со сто и т и з д вух о сно вны х ча сте й: про л о га и е д и нстве нно го эл е ме нта Д о куме нт(ко рне во го эл е ме нта ). По ми мо это го о н мо ж е т со д е рж а ть ко мме нта ри и , и нструкци и и про бе л ы . Ко рне во й эл е ме нт мо ж е т со д е рж а ть вл о ж е нны е эл е ме нты . Э л е ме нты д о л ж ны бы ть пра ви л ьно вл о ж е ны . Е сл и эл е ме нт на чи на е тся внутри не ко то ро го д руго го эл е ме нта , то и за ка нчи ва ться о н д о л ж е н внутри то го ж е эл е ме нта . Ка ж д ы й эл е ме нтсо сто и ти з на ча л ьно го те га , со д е рж и мо го и ко не чно го те га . И скл юче ни е м явл яе тся пусто й эл е ме нт, д л я ко то ро го мо ж е т и спо л ьзо ва ться е д и нстве нны й те г пусто го эл е ме нта : <EmptyElement/>. И мя эл е ме нта (ти па эл е ме нта ) д о л ж но на чи на ться с буквы и л и си мво л а по д че рки ва ни я ( _ ) , по сл е че го мо гути д ти буквы , ци ф ры , си мво л ы то чки (.), ти ре (-) и л и по д че рки ва ни я. Н е сл е д уе ти спо л ьзо ва тьи ме на , на чи на ющ и е ся с пре ф и кса “xml”. И мя, за пи са нно е в на ча л ьно м те ге , д о л ж но в то чно сти со о тве тство ва ть и ме ни в ко не чно м те ге , вкл юча я ре ги стр, в ко то ро м на бра ны буквы . С л е д уе тза ме ти ть, что в XML во о бщ е на и ме но ва ни я чувстви те л ьны к ре ги стру. С о д е рж и мы м эл е ме нта счи та е тся те кст, ра спо л о ж е нны й ме ж д у на ча л ьны м и ко не чны м те га ми . В ка че стве со д е рж и мо го мо гути спо л ьзо ва ться: • вл о ж е нны е эл е ме нты ; • си мво л ьны е д а нны е – те кст, вы ра ж а ющ и й и нф о рма ци о нно е со д е рж а ни е эл е ме нта ; • ссы л ки на о бщ и е сущ но сти и ссы л ки на си мво л ы (буд ут ра ссмо тре ны по зд не е ); • ра зд е л ы си мво л ьны х д а нны х (CDATA) – те ксто вы е бл о ки , в ко то ры х мо ж но сво бо д но ра зме щ а тьл юбы е си мво л ы (буд утра ссмо тре ны по зд не е ); • и нструкци и (по о бра бо тке ) – со д е рж а т и нф о рма ци ю, не о бхо д и мую д л я XML-про це ссо ро в (буд утра ссмо тре ны по зд не е ); • ко мме нта ри и – при ме ча ни я к д о куме нту, ко то ры е и гно ри руются XMLпро це ссо ро м. В на ча л ьны й те г эл е ме нта л и бо в те г пусто го эл е ме нта мо ж но вкл ючи тьо д и н и л и не ско л ько о пи са ни й а т рибут ов. Опи са ни е а три бута пре д ста вл яе тсо бо й па ру и мя = зна че ни е , связа нную с д а нны м эл е ме нто м. Ка ж д о е и мя а три бута мо ж е т то л ько о д и н ра з при сутство ва тьв на ча л ьно м те ге эл е ме нта . Пра ви л а и ме но ва ни я а три буто в а на л о ги чны пра ви л а м и ме но ва ни я эл е ме нто в. Н а при ме р, сл е д ующ и й эл е ме нтPRICE вкл юча е та три бутс и ме не м Туре , ко то ро му при сво е но зна че ни е ро зни чна я:
180 руб. С л е д ующ и й пусто й эл е ме нт вкл юча е т а три бут с и ме не м Source, ко то ры й ука зы ва е тна и мя ф а йл а , со д е рж а щ е го о то бра ж а е мую ка рти нку:
7
З а д а ни е а три буто в о бе спе чи ва е т а л ьте рна ти вны й спо со б вкл юче ни я и нф о рма ци и в эл е ме нт. Обы чно внутри со д е рж и мо го эл е ме нта по ме щ а ются все о тно сящ и е ся к не му о то бра ж а е мы е д а нны е . А три буты ж е и спо л ьзуются д л я хра не ни я ра зл и чны х сво йств эл е ме нта , ко то ры е не о бяза те л ьно буд ут о то бра ж е ны . С тро ги х пра ви л , ре гл а ме нти рующ и х эту си туа ци ю, не т. З на че ни е , ко то ро е мо ж но при сва и ва ть а три буту, пре д ста вл яе т со бо й стро ку си мво л о в, о гра ни че нны х ка вы чка ми . Та ка я группа си мво л о в на зы ва е тся л и те ра л о м. Ли те ра л ы д о л ж ны уд о вл е тво рятьсл е д ующ и м пра ви л а м: • стро ка мо ж е тбы тьза кл юче на в о д и на рны е л и бо д во йны е ка вы чки ; • стро ка не мо ж е т со д е рж а ть то т ж е си мво л ка вы чки , ко то ры м о на о гра ни че на ; • стро ка мо ж е т со д е рж а ть ссы л ку на си мво л и л и ссы л ку на внутре ннюю сущ но стьо бщ е го на зна че ни я (буд е тра ссмо тре но по зд не е ); • стро ка не мо ж е тсо д е рж а тьси мво л < ; • стро ка не мо ж е тсо д е рж а ть си мво л &, е сл и это не ссы л ка на си мво л и л и сущ но сть. Д л я д е мо нстра ци и и спо л ьзо ва ни я а три буто в на бе ри те в те ксто во м ре д а кто ре пре д ста вл е нны й ни ж е д о куме нти со хра ни те е го в ф а йл е Inventory02.xml.
<TITLE>DHTML: Руко во д ство ра зра бо тчи ка С ти ве н Х о л ьцне р 400 с. 66 руб. <TITLE>XML. Ш а г за ш а го м М а йкл Я нг 384 с. 140 руб. <TITLE>Ра зра бо тка по л ьзо ва те л ьско го и нте рф е йса Те о М а нд е л 416 с. 173 руб.
8
<TITLE>И зуча е м XML Э ри к Рэй 408 с. 180 руб. Ка к ви д но и з те кста , в ка ж д о м эл е ме нте BOOK и нф о рма ци я о ви д е пе ре пл е та пре о бра зо ва на и з со д е рж и мо го (вл о ж е нны й эл е ме нт BINDING) в а три бут с и ме не м Binding. К ка ж д о му эл е ме нту AUTHOR д о ба вл е н а три бутс и ме не м Born, со д е рж а щ и й д а ту ро ж д е ни я а вто ра . С о зд а йте и со хра ни те д л я это го д о куме нта по д и ме не м Inventory02.css сл е д ующ ую та бл и цу сти л е й. /* И мя ф а йл а : Inventory02.css */ BOOK {display:block; margin-top:12pt; font-size:10pt} TITLE {display:block; font-size:12pt; font-weight:bold; font-style:italic} AUTHOR {display:block; margin-left:15pt; font-weight:bold} BINDING {display:block; margin-left:15pt} PAGES {display:none} PRICE {display:block; margin-left:15pt} С д е л а в те пе рь д во йно й щ е л чо к мы ш ью на ф а йл е Inventory02.xml, вы убе д и те сь, что IE5 не о то бра зи л а три буты на экра не .
9
2.3. Ко мме нта ри и , и нструкци и и ра зд е л ы си мво л ьны х д а нны х Од ни м и з при нци по в XML явл яе тся со зд а ни е про сты х д л я по ни ма ни я д о куме нто в. С это й це л ью в д о куме нт мо ж но по ме щ а ть коммент а рии. Ко мме нта ри й на чи на е тся с си мво л о в . М е ж д у эти ми д вумя о гра ни чи те л ями мо ж но за пи са ть л юбы е си мво л ы , кро ме д во йно го ти ре (--). Ко мме нта ри и мо ж но вста вл ять в л юбо е ме сто XML-д о куме нта , кро ме о пи са ни я те га . Они не о бра ба ты ва ются XML-про це ссо ра ми , а л и ш ь ко мме нти руюто пи са ни е д о куме нта . Од ни ми и з во змо ж ны х ви д о в эл е ме нто в XML-д о куме нта явл яются инст рукции. И нструкци и , на зы ва е мы е и но гд а та кж е и нструкци ями по о бра бо тке , пре д на зна че ны д л я XML-про це ссо ра , ко то ры й буд е т о бра ба ты ва ть д о куме нт. Общ и й ви д и нструкци и : . З д е сь на именова ние ука зы ва е т по л уча те л я и нструкци и . Па ра ме тр да нные за д а е т со д е рж а ни е и нструкци и . По на и ме но ва ни ю ко нкре тны й XML-про це ссо р о пре д е л яе т, пре д на зна че ны д а нны е е му и л и д руго му про це ссо ру. Од ну и ту ж е и нструкци ю мо гут вы по л нять не ско л ько про гра мм, и о д на про гра мма мо ж е т при ни ма ть и нструкци и с ра зл и чны ми на и ме но ва ни ями . Н а при ме р, е сл и в ка че стве XMLпро це ссо ра и спо л ьзуе тся IE5, то е сть 2 о сно вны е во змо ж но сти при ме не ни я и нструкци й: • при ме нять ста нд а ртны е и нструкци и , со о бщ а ющ и е , ка к о то бра ж а ть д о куме нтс и спо л ьзо ва ни е м со о тве тствующ е й та бл и цы сти л е й: ; • по ме щ а ть в д о куме нт л юбы е не за ре зе рви ро ва нны е и нструкци и , ко то ры е буд ут счи ты ва ться и вы по л няться спе ци а л ьно на пи са нны ми д л я это го про гра мма ми -сце на ри ями (буд е тра ссмо тре но по зж е ). И нструкци и мо гутпо ме щ а ться в л юбо е ме сто XML-д о куме нта вне о пи са ни й те го в. В нутри си мво л ьны х д а нны х в со д е рж и мо м эл е ме нта не л ьзя по ме щ а ть не ко то ры е спе ци а л ьны е си мво л ы (<, &, … ), т. к. это мо ж е тпри ве сти к пута ни це при о бра бо тке д о куме нта . Од ни м и з во змо ж ны х путе й пре о д о л е ни я эти х о гра ни че ни й явл яе тся и спо л ьзо ва ни е ра зделов символьных да нных. Та ко й ра зд е л на чи на е тся с си мво л о в . В се си мво л ы внутри ра зд е л а CDATA ра ссма три ва ются ка к л и те ра л ьна я ча сть си мво л ьны х д а нны х эл е ме нта , а не ка к XML-ра зме тка . Ра зд е л CDATA мо ж е тра спо л а га ться в л юбо м ме сте д о куме нта , за ни ма е мо м си мво л ьны ми д а нны ми . Ра зд е л ы CDATA не мо гут бы тьвл о ж е нны ми . 2.4. Д о пусти мы е XML – д о куме нты Ка к ска за но вы ш е , ка ж д ы й XML-д о куме нт д о л ж е н бы ть пра ви л ьно о ф о рмл е нны м, т. е . о тве ча ть ми ни ма л ьны м тре бо ва ни ям, и на че о н не мо ж е т счи та ться XML-д о куме нто м. Д опуст имые XML-д о куме нты со о тве тствуютбо л е е стро го му на бо ру кри те ри е в. Д о пусти мы м на зы ва е тся пра ви л ьно о ф о рмл е нны й XML-д о куме нт, уд о вл е тво ряющ и й д вум д о по л ни те л ьны м тре бо ва ни ям:
10
• про л о г д о куме нта д о л ж е н со д е рж а ть спе ци а л ьно е определение т ипа документ а (DTD), за д а ющ е е структуру д о куме нта ; • о ста л ьна я ча сть д о куме нта д о л ж на со о тве тство ва ть структуре , за д а нно й в DTD. 2.4.1. Объявл е ни е ти па д о куме нта В кл юче ни е DTD, ко то ро е о пи сы ва е тд о пусти мую структуру д о куме нта , д а е т во змо ж но сть XML-про це ссо ру про ве ри ть со о тве тстви е д о куме нта структуре и вы д а ть со о бщ е ни е о б о ш и бке , е сл и ча сть д о куме нта не со о тве тствуе т DTDспе ци ф и ка ци и . Бо л ьш и нство сущ е ствующ и х XML-при л о ж е ни й (на при ме р, MathML) со сто ят и з ста нд а ртно го DTD, ко то ро е все по л ьзо ва те л и при л о ж е ни я вкл юча ютв сво и XML-д о куме нты . При ме ча ни е . Про це ссо р IE5 про ве ряе тд о куме нтна д е йстви те л ьно стьто л ько в то м сл уча е , е сл и вы о ткры ва е те д о куме нтче ре з HTML Web-стра ни цу. Е сл и ж е XML-д о куме нто ткры ва е тся не по сре д стве нно в IE5, то про це ссо р буд е тпро ве рять д о куме нт (вкл юча я л юбо е DTD, ко то ро е о н со д е рж и т) л и ш ь на пра ви л ьно сть о ф о рмл е ни я, но не на д е йстви те л ьно сть. Ч то бы в IE5 не по сре д стве нно про ве ри ть д о куме нтна д е йстви те л ьно сть, мо ж но и спо л ьзо ва ть сце на ри и , о ко то ры х буд е т ра сска за но по зж е . Объявл е ни е ти па д о куме нта пре д ста вл яе т со бо й бл о к XML-ра зме тки , д о ба вл яе мы й в про л о г д е йстви те л ьно го XML-д о куме нта . Э то т бл о к мо ж е т ра спо л а га ться в л юбо м ме сте про л о га , кро ме о пи са ни я те га , и и ме е тсл е д ующ ую о бщ ую ф о рму: . З д е сь И мя ука зы ва е т на и мя ко рне во го эл е ме нта (эл е ме нта д о куме нта ). Д е йстви те л ьны й д о куме нт д о л ж е н и ме ть ко рне во й эл е ме нт, и мя ко то ро го в то чно сти со о тве тствуе то бъявл е нно му и ме ни в DTD. Описа ние о гра ни че но ква д ра тны ми ско бка ми [… ], в ко то ры х ра спо л а га е тся ряд о бъявл е ни й ра зме тки . Объявления ра змет ки о пи сы ва ют л о ги че скую структуру д о куме нта , т. е . за д а ют ти пы эл е ме нто в д о куме нта , а три буты и д руги е ко мпо не нты . DTD мо ж е т со д е рж а ть сл е д ующ и е ти пы о бъявл е ни й ра зме тки . • Объявл е ни я ти по в эл е ме нто в. Они о пре д е л яют ти пы эл е ме нто в, ко то ры е мо ж е т со д е рж а ть д о куме нт, а та кж е со д е рж и мо е и по ряд о к сл е д о ва ни я эл е ме нто в. • Объявл е ни я спи ско в а три буто в. Ка ж д о е о бъявл е ни е спи ска а три буто в за д а е ти ме на а три буто в, ко то ры е мо гутбы тьи спо л ьзо ва ны с о пре д е л е нны м ти по м эл е ме нта , а та кж е ти пы д а нны х и уста на вл и ва е мы е по умо л ча ни ю зна че ни я эти х а три буто в. • Объявл е ни я сущ но сте й. С ущ но сти и спо л ьзуются д л я хра не ни я ча сто и спо л ьзуе мы х ф ра гме нто в те кста и л и д л я встра и ва ни я в д о куме нтд а нны х, не о тно сящ и хся к XML. • Объявл е ни я но та ци й. Н о та ци и о пи сы ва ют ф о рма ты д а нны х и л и и д е нти ф и ци руют про гра ммы , и спо л ьзуе мы е д л я о бра бо тки о пре д е л е нны х ф о рма то в д а нны х. • И нструкци и .
11
• Ко мме нта ри и . • С сы л ки на па ра ме три че ски е сущ но сти . Любо й и з при ве д е нны х вы ш е ко мпо не нто в мо ж е т со д е рж а ться внутри па ра ме три че ско й сущ но сти и д о ба вл яться путе м ссы л ки на не е . Ч а стько мпо не нто в, пе ре чи сл е нны х в это м спи ске , буд е тра ссмо тре на по зд не е . 2.4.2. Объявл е ни е ти по в эл е ме нто в В DTD д е йстви те л ьно го XML-д о куме нта не о бхо д и мо по л но стью о бъяви тьти п ка ж д о го эл е ме нта , ко то ры й мо ж е ти спо л ьзо ва ться в д о куме нте . Объявл е ни е ти па эл е ме нта и ме е т сл е д ующ ую о бщ ую ф о рму: . З д е сьИ мя е стьи мя о бъявл яе мо го ти па эл е ме нта . Содерж имое о пре д е л яе т, ка ки е д а нны е мо ж е тсо д е рж а тьэл е ме нт. Ра ссмо три м при ме р:
] >
Mozart Violin Concertos 1, 2 and 3 Telemann Trumpert Consertos Handel Concerti Grossi Op. 3 Э то тпри ме р пре д ста вл яе тсо бо й за ве рш е нны й XML-д о куме нтс д вумя ти па ми эл е ме нто в. Объявл е ни е ти па эл е ме нта Collection ука зы ва е т, что о н мо ж е т со д е рж а ть о д и н и л и не ско л ько эл е ме нто в CD, а о бъявл е ни е ти па эл е ме нта CD ука зы ва е т, что о н мо ж е тсо д е рж а ть то л ько си мво л ьны е д а нны е . В о бщ е м сл уча е сущ е ствуе т5 ра зл и чны х мо д е л е й со д е рж и мо го эл е ме нта . • Пусто е со д е рж и мо е (EMPTY). В это м сл уча е эл е ме нт не мо ж е т и ме ть со д е рж и мо го . Н а при ме р, . • Любо е со д е рж и мо е (ANY). В это м сл уча е эл е ме нтмо ж е тсо д е рж а тьл юбо е д о пусти мо е д л я это го ти па со д е рж и мо е . Э л е ме нт это го ти па мо ж е т со д е рж а ть и л и не со д е рж а ть д о че рни е эл е ме нты в л юбо м по ряд ке и с л юбы м ко л и че ство м вхо ж д е ни й, и ме ть и л и не и ме ть че ре д ующ и е ся си мво л ьны е д а нны е . Э то т ти п по зво л яе т со зд а ва ть ти пы эл е ме нто в бе з о гра ни че ни й на и х со д е рж и мо е . Н а при ме р, . • С и мво л ьны е д а нны е (#PCDATA). Э л е ме нт та ко го ти па мо ж е т со д е рж а ть то л ько си мво л ьны е д а нны е и не мо ж е тсо д е рж а тьд о че рни х эл е ме нто в. Д л я при ме ра см. вы ш е эл е ме нтCD. Кл юче во е сл о во #PCDATA за д а е тти п та к
12
на зы ва е мы х а на лизируемых символьных да нных, т. е . си нта кси че ски про ве ряе мы х XML-про це ссо ро м. • С о д е рж и т то л ько эл е ме нты . При та ко м о пи са ни и ти па эл е ме нт мо ж е т со д е рж а ть д о че рни е эл е ме нты , но не мо ж е т не по сре д стве нно со д е рж а ть си мво л ьны е д а нны е . С м. в при ме ре эл е ме нтКо л л е кци я. • С ме ш а нно е со д е рж и мо е . При это м о пи са ни и ти па эл е ме нтмо ж е тсо д е рж а ть си мво л ьны е д а нны е , че ре д ующ и е ся с д о че рни ми эл е ме нта ми . Общ а я ф о рма за пи си в по сл е д ни х тре х мо д е л ях со д е рж и мо го пре д ста вл яе т со бо й за кл юче нно е в кругл ы е ско бки та к на зы ва е мо е регулярное выра ж ение, о пре д е л яющ е е по ряд о к сл е д о ва ни я и ти пы д о че рни х эл е ме нто в и си мво л ьны х д а нны х в со д е рж и мо м о пи сы ва е мо го эл е ме нта . В ка че стве о пе ра нд о в это го вы ра ж е ни я ф и гури руют и ме на д о че рни х эл е ме нто в и си мво л ьны е д а нны е (#PCDATA), а в ка че стве о пе ра то ро в – сл е д ующ и е си мво л ы : • З а пята я “ , ”. Опи сы ва е т не о бхо д и мую по сл е д о ва те л ьно сть эл е ме нто в. И ме е т смы сл л о ги че ско го о пе ра то ра and. Н а при ме р, A, B о зна ча е т, что пе рвы м д о л ж е н бы ть д о че рни й эл е ме нт ти па A, за ко то ры м д о л ж е н сл е д о ва тьд о че рни й эл е ме нтти па B. • В е рти ка л ьна я че рта “ | ” . Опи сы ва е т а л ьте рна ти вны е ва ри а нты . И ме е т смы сл л о ги че ско го о пе ра то ра or. Н а при ме р, A | B о зна ча е т, что в д а нно м ме сте мо ж е тбы тьл и бо A, л и бо B, при че м д о пуска е тся ро вно о д и н ва ри а нт и з д вух. • Кругл ы е ско бки “ ( ) ”. Объе д и няют по д вы ра ж е ни е та ки м о бра зо м, что сл е д ующ и й д а л е е о пе ра то р при ме няе тся ко все му по д вы ра ж е ни ю. Н а при ме р, (A | B), C о зна ча е т что за A и л и B сл е д уе т C (д о пусти мы е ва ри а нты – A, C и л и B, C). • В о про си те л ьны й зна к “ ? ”. Д е л а е т пре д ш е ствующ и й эл е ме нт не о бяза те л ьны м. • Н а при ме р, A? о зна ча е т, что в д а нно й по зи ци и эл е ме нт ти па A мо ж е т при сутство ва ть, а мо ж е тбы тьо пущ е н по усмо тре ни ю а вто ра д о куме нта . • З на к пл юс “ + “. Д е л а е тпре д ш е ствующ и й эл е ме нтпо вто ряе мы м о то д но го д о не о гра ни че нно го ко л и че ства ра з. Н а при ме р, д л я (A | B)+ д о пусти мы ми ва ри а нта ми буд утA и л и B и л и AA и л и AB и л и BA и л и BB и л и AAA и л и ABA … • З на к зве зд о чка “ * “. Д е л а е т пре д ш е ствующ и й эл е ме нт по вто ряе мы м о т нул я д о не о гра ни че нно го ко л и че ства ра з. Н и ж е при во д ятся во змо ж ны е о бъявл е ни я ти по в эл е ме нто в. По про буйте при ве сти при ме ры со о тве тствующ и х и м д е йстви те л ьны х эл е ме нто в.
13
2.4.3. Объявл е ни е а три буто в В д е йстви те л ьно м XML-д о куме нте не о бхо д и мо та кж е и сче рпы ва ющ е о бъяви ть все а три буты , и спо л ьзуе мы е д л я эл е ме нто в д о куме нта . Д л я это го сущ е ствуе т спе ци а л ьны й ви д DTD-ра зме тки , на зы ва е мы й объявлением списка а т рибут ов. Э то о бъявл е ни е : • Опре д е л яе ти ме на а три буто в, а ссо ци и ро ва нны х с эл е ме нто м. • У ста на вл и ва е тти п д а нны х ка ж д о го а три бута . • З а д а е т не о бхо д и мо сть при сутстви я ка ж д о го а три бута . Е сл и а три бут не о бяза те л е н, мо ж е тука зы ва ться зна че ни е а три бута по умо л ча ни ю. Объявл е ни е спи ска а три буто в и ме е т о бщ и й ви д , гд е И мяЭ лемент а – и мя эл е ме нта , д л я ко то ро го о пи сы ва ются а три буты , А т рибут ы – о д но и л и не ско л ько о пре д е л е ни й а три бута , ра зд е л е нны х про бе л о м. Ка ж д о е о пре д е л е ни е а три бута за пи сы ва е тся в ви д е И мяА три бута Ти п З на че ни е По У мо л ча ни ю, гд е И мяА т рибут а – и мя о пи сы ва е мо го а три бута , Тип – о пи са ни е ти па зна че ни й, ко то ры е мо ж е т при ни ма ть а три бут, Зна чениеП оУ молча нию – о бъявл е ни е зна че ни я по умо л ча ни ю, ко то ро е о пре д е л яе т не о бхо д и мо сть при сутстви я а три бута и мо ж е тза д а ва ть зна че ни е , а вто ма ти че ски при сва и ва е мо е е му при е го о тсутстви и . Пусть, на при ме р, е стьсл е д ующ е е о бъявл е ни е ти па эл е ме нта : . С л е д ующ е е о бъявл е ни е о пи сы ва е т д ва а три бута – Class и Year – д л я эл е ме нта Ф и л ьм: . З на че ни е м а три бута Class мо ж е тбы тьл юба я стро ка в ка вы чка х (кл юче во е сл о во CDATA); е сл и д л я не ко то ро го эл е ме нта это та три бутне за д а н, е му по умо л ча ни ю при сва и ва е тся зна че ни е “ко ме д и я”. А три бут Yaer в ка че стве зна че ни я мо ж е т при ни ма ть л юбую стро ку в ка вы чка х и это та три бутвсе гд а д о л ж е н бы ть за д а н (кл юче во е сл о во #REQUIRED). Ти п а три бута в о бщ е м сл уча е мо ж е тза д а ва ться сл е д ующ и ми 3 спо со ба ми . • С тро ко вы й ти п. А три буту это го ти па в ка че стве зна че ни я мо ж но при сва и ва ть л юбую стро ку в ка вы чка х (л и те ра л ), пра ви л а по стро е ни я ко то ры х ра ссма три ва л и сьв п. 2.2. • М а рке рны й ти п. Э то стро ко вы й ти п с не ко то ры ми д о по л ни те л ьны ми о гра ни че ни ями . • Пе ре чи сл и мы й ти п. Э то а три бут, ко то ры й мо ж е т при ни ма ть стро ко во е зна че ни е и з со ста вл е нно го за ра не е спи ска . Ра ссмо три м бо л е е по д ро бно по сл е д ни е д ва ти па . З на че ни е ма ркерного т ипа д о л ж но уд о вл е тво рять о гра ни че ни ю, за д а нно му в о пи са ни и а три бута с по мо щ ью со о тве тствующ е го кл юче во го сл о ва . Н и ж е при во д и тся по л ны й спи со к эти х кл юче вы х сл о в.
14
• ID. А три бутс та ки м о гра ни че ни е м д о л ж е н и ме тьуни ка л ьно е зна че ни е д л я эл е ме нто в д а нно го ти па в д о куме нте . Д а нны й ти п эл е ме нта мо ж е т и ме ть то л ько о д и н а три бутти па ID. • IDREF. З на че ни е та ко го а три бута д о л ж но со впа д а тьсо зна че ни е м а три бута ти па ID внутри д а нно го д о куме нта . Та ки м о бра зо м, это т ти п а три бута эл е ме нта пре д ста вл яе тсо бо й ссы л ку на уни ка л ьны й и д е нти ф и ка то р д руго го эл е ме нта то го ж е ти па . • IDREFS. Э то т ти п а три бута по хо ж на пре д ы д ущ и й, но мо ж е т со д е рж а ть ссы л ки на не ско л ько и д е нти ф и ка то ро в, ра зд е л е нны х про бе л а ми внутри л и те ра л а . • ENTITY. З на че ни е та ко го а три бута д о л ж но со впа д а ть с и ме не м сущ но сти , о бъявл е нно й в DTD. Э та сущ но сть не о бра ба ты ва е тся си нта кси че ски м а на л и за то ро м и ссы л а е тся на вне ш ни й ф а йл , о бы чно со д е рж а щ и й не XMLд а нны е . С ущ но сти буд утра ссмо тре ны по зд не е . • ENTITIES. Э то т ти п по хо ж на пре д ы д ущ и й, но мо ж е т со д е рж а ть и ме на не ско л ьки х не а на л и зи руе мы х сущ но сте й, ра зд е л е нны х про бе л а ми внутри л и те ра л а . • NMTOKEN. З на че ни е м это го ти па явл яе тся эл е ме нта рно е и мя, по стро е нно е по и зл о ж е нны м ра не е пра ви л а м. • NMTOKENS. Н е ско л ько эл е ме нта рны х и ме н. С л е д ующ и й не бо л ьш о й при ме р и л л юстри руе то пи са ни я а три буто в. ] >
- Ро зо вы й ча йни к
- Э л е ктри че ска я ко ф е мо л ка
- М е ха ни че ска я ко ф е мо л ка
А три бут перечислимого т ипа мо ж е т при ни ма ть стро ко во е зна че ни е и з о пре д е л е нно го за ра не е спи ска . Э то т спи со к мо ж е т за д а ва ться о д ни м и з сл е д ующ и х д вух спо со бо в. • С пи со к а л ьте рна ти вны х зна че ни й в кругл ы х ско бка х. Н а при ме р, .
15
• С пи со к а л ьте рна ти вны х но та ци й. Пе ре д спи ско м ука зы ва е тся кл юче во е сл о во NOTATION. С пи со к со сто и ти з и ме н но та ци й, о бъявл е нны х в DTD. Н о та ци я о пи сы ва е т ф о рма т д а нны х и л и и д е нти ф и ци руе т про гра мму, при ме няе мую д л я о бра бо тки о пре д е л е нно го ф о рма та . По д ро бне е о но та ци ях буд е тра сска за но по зд не е . Н а при ме р, Объявление зна чения по умолча нию за д а е т, явл яе тся л и а три бут о бяза те л ьны м, и е сл и не т, ука зы ва е т, что д о л ж е н пре д при ни ма ть про це ссо р при е го о тсутстви и . Э то о бъявл е ни е и ме е тсл е д ующ и е 4 ф о рмы . • #REQUIRED. У ка зы ва е т, что а три бутд о л ж е н при сутство ва тьо бяза те л ьно . • #IMPLIED. Та ко й а три бутявл яе тся не о бяза те л ьны м, и е сл и о н не за д а н, то ни ка ко е зна че ни е по умо л ча ни ю е му не при сва и ва е тся. • З на че ни е по умо л ча ни ю. Е сл и о но за д а но , то а три бут явл яе тся не о бяза те л ьны м, а при е го о тсутстви и е му при сва и ва е тся это зна че ни е . • #FIXED З на че ни е по умо л ча ни ю. Та ко й а три бутмо ж е ти ме тьто л ько о д но ука за нно е зна че ни е , ко то ро е при сва и ва е тся е му по умо л ча ни ю при е го о тсутстви и . 2.4.4. И спо л ьзо ва ни е вне ш ни х DTD Ра ссмо тре нны е вы ш е о пи са ни я ти па д о куме нта це л и ко м со д е рж а тся в со ста ве са мо го д о куме нта . Та ко й ти п DTD на зы ва е тся внут ренним. Од на ко о пре д е л е ни е ти па д о куме нта це л и ко м и л и ча сти чно мо ж но ра спо л о ж и тьв о тд е л ьно м ф а йл е , а за те м ссы л а ться на это тф а йл и з внутре нне го DTD. Опре д е л е ни е , ра спо л о ж е нно е в о тд е л ьно м ф а йл е , на зы ва е тся внеш ним, и л и внеш ним подмнож ест вом DTD. При ме не ни е вне ш не го DTD и ме е тсмы сл в сл уча ях, ко гд а о но явл яе тся о бщ и м д л я це л о й группы д о куме нто в. М но ги е и зве стны е XML-при л о ж е ни я (на при ме р, MathML) о сно ва ны на о бщ е м DTD. Ч то бы и спо л ьзо ва ть то л ько вне ш не е DTD, д о ста то чно во внутре нне м DTD за ме ни ть бл о к о бъявл е ни й ра зме тки кл юче вы м сл о во м SYSTEM, за ко то ры м сл е д уе тссы л ка на со о тве тствующ и й ф а йл . Ра ссмо три м, на при ме р, д о куме нт ] > <Simple>Э то кра йне упро щ е нны й XML д о куме нт. Е сл и д л я это го д о куме нта при ме ни ть вне ш не е DTD, о н буд е ти ме ть сл е д ующ и й ви д :
16
<Про сто й>Э то кра йне упро щ е нны й XML д о куме нт.Про сто й>, а ф а йл Simple.dtd д о л ж е н и ме тьсо д е рж и мо е . Ф а йл , со д е рж а щ и й вне ш не е по д мно ж е ство DTD, мо ж е т вкл юча ть л юбы е о бъявл е ни я ра зме тки , ко то ры е мо гутвкл юча ться во внутре нне е DTD. Опи са ни е ме сто на хо ж д е ни я ф а йл а (в д а нно м при ме ре Simple.dtd) на зы ва е тся си сте мны м л и те ра л о м. Он мо ж е т бы ть за кл юче н в о д и на рны е и л и д во йны е ка вы чки и со д е рж а ть л юбы е си мво л ы , за и скл юче ни е м ка вы че к-о гра ни чи те л е й. С и сте мны й л и те ра л пре д ста вл яе тсо бо й та к на зы ва е мы й униф ицирова нный идент иф ика т ор ресурса (URI) ф а йл а . URI пра кти че ски а на л о ги че н ста нд а ртно му Interner-а д ре су (URL). Н а при ме р, мо ж но ука зы ва тьпо л но стью про пи са нны й URI: , и л и , ка к и вы ш е в при ме ре , ча сти чны й URI, за д а ющ и й ме сто на хо ж д е ни е ф а йл а DTD о тно си те л ьно ра спо л о ж е ни я са мо го XML-д о куме нта . М о ж но и спо л ьзо ва тьвне ш не е и внутре нне е по д мно ж е ства DTD о д но вре ме нно . Н а при ме р, ] >
<Title>XML. Ш а г за ш а го м С о д е рж и мо е ф а йл а Book.dtd: Е сл и и спо л ьзуются вне ш не е и внутре нне е по д мно ж е ства DTD, то XMLпро це ссо р д е йствуе тсл е д ующ и м о бра зо м. • Д л я ф о рми ро ва ни я по л но го DTD в о бщ е м сл уча е о сущ е ствл яе тся сл и яни е д вух по д мно ж е ств. • В нутре нне по д мно ж е ство DTD и ме е т вы сш и й при о ри те т по сра вне ни ю с вне ш ни м по д мно ж е ство м. Та ки м о бра зо м, внутре нне е по д мно ж е ство DTD мо ж е т д о ба вл ять эл е ме нты , а три буты и л и сущ но сти (буд ут ра ссмо тре ны ни ж е ), а та кж е и зме нятьи х о пре д е л е ни я, и ме ющ и е ся во вне ш не м DTD. • В сл уча е , е сл и а три бут с о д ни м и те м ж е и ме не м и ти по м эл е ме нта о бъявл яе тся бо л е е о д но го ра за , про це ссо р и спо л ьзуе тпе рво е о бъявл е ни е и
17
и гно ри руе твсе по сл е д ующ и е . Э то пра ви л о при ме няе тся и д л я по вто рны х о бъявл е ни й сущ но сте й. 2.5. Опре д е л е ни е и и спо л ьзо ва ни е сущ но сте й М е ха ни зм сущ но сте й явл яе тся сре д ство м о бл е гчи ть на пи са ни е , чте ни е и со про во ж д е ни е XML. С ущ но сть (entity) явл яе тся за ме сти те л е м со д е рж а ни я. Е е мо ж но о д на ж д ы о бъяви тьи за те м мно го кра тно и спо л ьзо ва тьпо чти в л юбо м ме сте д о куме нта (на при ме р, на и ме но ва ни е ко мпа ни и и л и ста нд а ртную юри д и че скую ф о рмул и ро вку). И ме е тся 2 о сно вны х ти па сущ но сте й – о бщ и е и па ра ме три че ски е . Общ ие сущ ност и явл яются за ме сти те л ями д л я л юбо го ви д а со д е рж и мо го д о куме нта , ко то ро е при сутствуе тна уро вне ко рне во го эл е ме нта д о куме нта XML и л и внутри не го . П а ра мет рические сущ ност и и спо л ьзуются то л ько в DTD и за ме щ а ют ко нструкци и в DTD. С ущ но сть со сто и т и з и ме ни и зна че ни я. Ко гд а XMLпро це ссо р про сма три ва е тд о куме нт, о н на хо д и тссы л ки на сущ но сти и за ме няе т и х зна че ни ями сущ но сте й. С сы л ка на о бщ ую сущ но сть и ме е т сл е д ующ и й ви д : &И мяС ущ но сти ; . В ссы л ке на па ра ме три че скую сущ но сть вме сто зна ка & и спо л ьзуе тся %. З на че ни е м сущ но сти мо ж е тбы тьвсе – о то тд е л ьно го си мво л а д о ф а йл а с ра зме тко й XML. Н а при ме р, сл е д ующ е е DTD о пре д е л яе твне ш ни й ф а йл Topics.xml (это тф а йл со д е рж и тспи со к те м в ста тье , вкл юче нно й в д о куме нт) ка к вне ш нюю сущ но сть с и ме не м topics, а та кж е л и те ра л ка к вне ш нюю сущ но сть с и ме не м title. ] > И ме я это DTD, мо ж но вста ви тьза го л о во к и по л ны й спи со к те м в л юбо е нуж но е ме сто ста тьи : <TitlePage> Title: &title; Author: М а йкл Я нг
Э та ста тья о хва ты ва е тсл е д ующ и е те мы : &topics;
18
Кро ме д е л е ни я на о бщ и е и па ра ме три че ски е , сущ но сти бы ва ют та кж е внут ренние (и х зна че ни я со д е рж а тся в стро ке в ка вы чка х) и внеш ние (со д е рж а тся в о тд е л ьно м ф а йл е ); а на лизируемые (по сл е вста вки зна че ни я про ве ряе мы е XMLпро це ссо ро м на пра ви л ьно сть си нта кси са ) и не а на лизируемые (ча щ е все го со д е рж а тне XML-д а нны е , на при ме р, гра ф и че ски е д а нны е и л и и зо бра ж е ни я). В при ве д е нно м вы ш е при ме ре о бе и спо л ьзуе мы е сущ но сти явл яются а на л и зи руе мы ми , при че м topics – вне ш не й, а З а го л о во к – внутре нне й. В се сущ но сти д о л ж ны бы ть о бъявл е ны в DTD д о и х и спо л ьзо ва ни я в д о куме нте . И скл юче ни е со ста вл яют сл е д ующ и е 2 ви д а внутре нни х а на л и зи руе мы х сущ но сте й, явл яющ и хся о д но си мво л ьны ми . • Пре д о пре д е л е нны е сущ но сти . Н е ко то ры е си мво л ы не л ьзя и спо л ьзо ва ть в те ксте д о куме нта XML, по ско л ьку о ни ко нф л и ктуют со спе ци а л ьны ми си мво л а ми ра зме тки . Н а при ме р, угл о вы е ско бки (< >) пре д на зна че ны д л я о гра ни че ни я те го в. Д л я и х вкл юче ни я в ка че стве ча сти те кста мо ж но и спо л ьзо ва ть спе ци а л ьны е ссы л ки : amp, apos, gt, lt, quot (за ме щ а ют со о тве тстве нно си мво л ы &, ‘, >, <, “). • Н уме ро ва нны е сущ но сти . С по мо щ ью эти х сущ но сте й мо ж но вкл ючи ть в те кст л юбо й си мво л по е го ко д у, д а ж е е сл и это го си мво л а не т на кл а ви а туре . Ко д в ссы л ке за пи сы ва е тся ка к #ко д (в д е сяти чно й си сте ме ) и л и #xко д (в ш е стна д ца те ри чно й си сте ме счи сл е ни я). Общ и й ви д о бъявл е ни я сущ но сти та ко в: . В сл уча е о бщ е й внутре нне й сущ но сти о бъявл е ни е за пи сы ва е тся ка к . При о бъявл е ни и о бщ е й вне ш не й а на л и зи руе мо й сущ но сти д л я ссы л ки на ф а йл и спо л ьзуе тся, ка к о бы чно в та ки х сл уча ях, кл юче во е сл о во SYSTEM: . З д е сьС и сте мЛи те ра л за д а е т URI ф а йл а , со д е рж а щ е го д а нны е сущ но сти . Объявл е ни е о бщ е й вне ш не й неа на лизируемой сущ но сти со д е рж и т д о по л ни те л ьно е кл юче во е сл о во NDATA, со о бщ а ющ е е , что ф а йл со д е рж и т не а на л и зи руе мы е д а нны е , ко то ры е и ме ют о со бы й ф о рма т, и л и но та ци ю (notation): . И мяН о та ци и ука зы ва е т ф о рма т не а на л и зи руе мы х д а нны х и д о л ж но бы ть ра не е о тд е л ьно о бъявл е но в DTD. Н о та ци я о пи сы ва е т спе ци ф и че ски й ф о рма т д а нны х. Объявл е ни е но та ци и за д а е т и мя ф о рма та д а нны х и ука зы ва е т про гра мму, ко то ра я спо со бна о бра ба ты ва ть д а нны е это го ф о рма та и л и про сто о пи са ни е ф о рма та . Оно и ме е т сл е д ующ ую ф о рму за пи си : . При ме р д о куме нта , и спо л ьзующ е го вне ш нюю не а на л и зи руе мую сущ но сть:
19
] >
<Title>Dynamic HTML: руко во д ство ра зра бо тчи ка С ти ве н Х о л ьцне р В это м при ме ре а три буту Source эл е ме нта CoverImage при сво е но и мя вне ш не й сущ но сти , со д е рж а щ е й гра ф и че ски е д а нны е д л я о то бра ж е ни я ри сунка о бл о ж ки кни ги . П а ра мет рические сущ ност и бы ва ют внутре нни ми и вне ш ни ми , но то л ько а на л и зи руе мы ми . И х о бъявл е ни я и ме ют ви д : и в о ста л ьно м и ме ют си нта кси с, схо ж и й с о бщ и ми сущ но стями . Г л а вна я и х спе ци ф и ка со сто и тв то м, что о бщ и е сущ но сти вл и яютна со д е рж и мо е д о куме нта , а па ра ме три че ски е сущ но сти на стра и ва ютко нструкци и DTD. Н а при ме р, сл е д ующ е е DTD и спо л ьзуе тпа ра ме три че скую внутре ннюю сущ но сть а вто р, со д е рж а щ ую 3 о бъявл е ни я ра зме тки . ” > %author; ] > 3. Ото бра ж е ни е XML – д о куме нто в Од но й и з ва ж не йш и х о со бе нно сте й XML явл яе тся во змо ж но сть о тд е л е ни я л о ги че ско й структуры д о куме нто в о т и х вне ш не го пре д ста вл е ни я. И ме нно во про са м л о ги че ско го по стро е ни я д о куме нто в бы л по свящ е н пре д ы д ущ и й ра зд е л ра бо ты . Ч то ж е ка са е тся ви зуа л ьно го пре д ста вл е ни я, то сущ е ствуе т не ско л ько ме то д о в упра вл е ни я о то бра ж е ни е м XML -д о куме нто в на экра не ко мпьюте ра . В при ме ра х пре д ы д ущ е го ра зд е л а и спо л ьзо ва л ся пе рвы й, са мы й про сто й и в на сто ящ е е вре мя на и бо л е е ра спро стра не нны й и з ни х – та бл и цы ка ска д ны х сти л е й
20
(CSS). Та бл и ца ка ска д ны х сти л е й пре д ста вл яе т со бо й ф а йл , ко то ры й со д е рж и т и нструкци и WEB-бра узе ру д л я ф о рма ти ро ва ни я эл е ме нто в в XML-д о куме нте д л я о то бра ж е ни я в WEB-стра ни це . Та бл и цы ка ска д ны х сти л е й по д д е рж и ва ются бо л ьш и нство м и зве стны х бра узе ро в, о д на ко это тме то д и ме е тряд сущ е стве нны х о гра ни че ни й. В ча стно сти , CSS не д а е т во змо ж но сти мо д и ф и ци ро ва ть со д е рж и мо е д о куме нта . Она не по зво л яе т та кж е о сущ е ствл ять д о ступ к а три бута м, сущ но стям, и нструкци ям и д руги м ко мпо не нта м XML и со о тве тстве нно не д а е т во змо ж но сти о бра ба ты ва ть и нф о рма ци ю, ко то рую эти ко мпо не нты со д е рж а т. С ущ е ствуе тряд бо л е е сл о ж ны х, но и бо л е е ги бки х те хно л о ги й о то бра ж е ни я XML-д о куме нто в. К ни м о тно сятся связы ва ни е д а нны х, сце на ри и о бъе ктно й мо д е л и д о куме нта (DOM), ра сш и ряе мы й язы к та бл и ц сти л е й (XSL). По д ро бне е о ме то д а х о то бра ж е ни я д о куме нто в а вто р пл а ни руе т ра сска за ть во II ча сти ме то д и че ски х ука за ни й. 4. MathML – язы к о пи са ни я ма те ма ти че ски х ф о рмул Од ни м и з на и бо л е е ярки х при ме ро в при л о ж е ни й XML явл яе тся Mathematical Markup Language (MathML). Д о не д а вне го про ш л о го е д и нстве нны м спо со бо м о то бра ж е ни я ма те ма ти че ски х ф о рмул явл ял и сь ри сунки , со зд а нны е в спе ци а л ьны х гра ф и че ски х ре д а кто ра х. Од на ко это т спо со б ма л о при го д е н д л я ра зви ты х си сте м о бме на на учно й и нф о рма ци е й. MathML пре д на зна че н д л я со д е рж а те л ьно го о пи са ни я ма те ма ти че ски х вы кл а д о к. При нци п MathML (ка к и са мо го XML) та ко в: спе ци а л и зи ро ва нна я и нф о рма ци я ко д и руе тся при по мо щ и эл е ме нто в XML в о бы кно ве нно м те ксто во м д о куме нте , а о то бра ж е ни е м е е в при вы чно й д л я че л о ве ка ф о рме за ни ма е тся уж е спе ци а л ьны й XML-про це ссо р. В со во купно сти с та бл и ца ми сти л е й CSS, но вы й язы к в ко не чно м и то ге по зво л и т бра узе ра м о бра ба ты ва ть ма те ма ти че ски е вы ра ж е ни я. Бл а го д а ря XLink (XML Linking Language) с л юбы м ма те ма ти че ски м вы ра ж е ни е м мо ж но связа тьссы л ки , а эл е ме нты MathML мо гут д о ба вл яться в д о куме нты XHTML (Extensible HTML) че ре з со о тве тствующ и е про стра нства и ме н. Кро ме то го , MathML 2.0 вкл юча е тв се бя мо д е л ьMathML DOM (MathML Document Object Model), ко то ра я по зво л яе т и д е нти ф и ци ро ва ть ко мпо не нты MathML и ма ни пул и ро ва ть и ми с по мо щ ью л юбо го язы ка о пи са ни я сце на ри е в. У ж е се йча с ча сть про и зво д и те л е й ПО пре д л а га е тспе ци а л ьны е на д стро йки , с по мо щ ью ко то ры х ко нструкци и MathML мо гут вы по л няться не по сре д стве нно в са мо м бра узе ре . А в ско ро м буд ущ е м по яви тся про гра ммно е о бе спе че ни е - пе ре во д чи ки и ре д а кто ры ура вне ни й, спо со бны е ге не ри ро ва ть HTML-ко д на о сно ве пре д ста вл е нны х ма те ма ти че ски х д а нны х на MathML. MathML со сто и ти з мно ж е ства XML-те го в, пре д на зна че нны х д л я ра зме тки ма те ма ти че ски х те ксто в. MathML пре по д но си тся ка к и нструме нт упра вл е ни я спе ци а л и зи ро ва нны ми сре д ства ми ра бо ты с а вто рски м ма те ри а л о м (на при ме р, ре д а кто ры ура вне ни й) и вза и мо д е йстви я ме ж д у ра зл и чны ми ма те ма ти че ски ми па ке та ми . Ряд и зве стне йш и х про и зво д и те л е й ма те ма ти че ски х па ке то в, в то м чи сл е Wolfram Research Inc., о бъяви л и о по д д е рж ке MathML (Mathematica 4).
21
MathML пре д о ста вл яе т во змо ж но сть и спо л ьзо ва ни я д вух ти по в ра зме тки – ви зуа л ьно й и се ма нти че ско й, что по зво л яе т по -ра зно му по д хо д и ть к про це ссу со зд а ни я по д о бны х д о куме нто в. В пе рво м сл уча е и спо л ьзуются и нструкци и о пи са ни я вне ш не го ви д а ма те ма ти че ско го вы ра ж е ни я. В о вто ро м ра зме тка пре д на зна че на д л я о пре д е л е ни я структуры вы ра ж е ни я и пре д о ста вл яе т во змо ж но сть е го и нте рпре та ци и про гра ммо й кл и е нта . Ч то бы пре д ста ви ть, ка к с по мо щ ью MathML о бра ба ты ва ются ма те ма ти че ски е вы ра ж е ни я, при ве д е м про сто й при ме р: x 2 + 4x + 4 = 0. Е стьд ва спо со ба за пи си это го ура вне ни я. Пе рвы й и спо л ьзуе тте ги пре д ста вл е ни я, ко то ры е о бы чно на чи на ются с <m>, за те м и д е т
д л я о пе ра ци и , д л я пе ре ме нно й, д л я чи сл о во й ко нста нты и т.д . Те г <mrow> ука зы ва е тна группо вую и е ра рхи ю: <mrow> <mrow> <msup> <mi>x <mn>2 <mo>+ <mrow> <mn>4 <mo>&invisibletimes; <mi>x <mo>+ <mn>4 <mo>= <mn>0 Д руго й ва ри а нт- при ме не ни е се ма нти че ски х те го в: <power/> x 2 4 x 4
22
В ка че стве при ме ро в про гра ммно го о бе спе че ни я, по д д е рж и ва ющ е го MathML 2.0, мо ж но на зва ть W3C Amaya browser, DSSSL stylesheets for MathML, IBM techexplorer, MathType и д руги е . 5. Ли те ра тура и ссы л ки в И нте рне те 1. Я нг М . XML. Ш а г за ш а го м: Пра кт. по со би е : Пе р. с а нгл .- M.: И зд -во Э КОМ , 2000 – 384 с. 2. Рэй Э . И зуча е м XML: Пе р. с а нгл . – С Пб: С и мво л -Пл юс, 2001. – 408 с. 3. http://www.w3.org/ . 4. http://www.w3.org/TR/2000/WD-MathML2-20000328/ . 5. http://www.oasis-open.org/cover . С о ста ви те л ь
М а хо рто в С е рге й Д ми три е ви ч
Ре д а кто р
Ти хо ми ро ва О. А .