Paglalarawan ng data gamit ang XML. XML - Syntax

Muli naming ipinagpatuloy ang aming pag-aaral ng XML at sa artikulong ito ay makikilala namin ang mga naturang XML construct tulad ng mga tagubilin sa pagproseso, komento, katangian at iba pa. Mga elemento ng XML. Ang mga elementong ito ay basic at nagbibigay-daan sa iyo na flexible, alinsunod sa pamantayan, markahan ang mga dokumento ng ganap na anumang kumplikado.

Bahagyang napag-usapan na namin ang ilang mga punto, tulad ng mga XML tag, sa nakaraang artikulong "". Ngayon ay tatalakayin nating muli ang paksang ito at susuriin ito nang mas detalyado. Ito ay partikular na ginagawa upang gawing mas madali para sa iyo na makuha ang buong larawan ng mga XML construct.

Mga elemento ng XML. Walang laman at walang laman na mga elemento ng XML

Tulad ng nabanggit sa nakaraang artikulo, ang mga tag sa XML ay hindi lamang nagmamarka ng teksto, tulad ng kaso sa HTML, ngunit i-highlight indibidwal na elemento(mga bagay). Sa turn, ang mga elemento ay hierarchically ayusin ang impormasyon sa isang dokumento, na siya namang ginawa sa kanila ang pangunahing istruktura unit ng XML wika.

Sa XML, ang mga elemento ay maaaring may dalawang uri - walang laman at walang laman. Ang mga walang laman na elemento ay hindi naglalaman ng anumang data, gaya ng text o iba pang mga construct. Hindi tulad ng mga walang laman na elemento, ang mga hindi laman na elemento ay maaaring maglaman ng anumang data, gaya ng text o iba pang XML na elemento at construct. Upang maunawaan ang punto ng nasa itaas, tingnan natin ang mga halimbawa ng walang laman at walang laman na mga elemento ng XML.

Walang laman na elemento ng XML

Walang laman na XML na elemento

Nilalaman ng elemento...

Tulad ng nakikita natin mula sa halimbawa sa itaas, ang pangunahing pagkakaiba sa pagitan ng mga walang laman na elemento at hindi walang laman ay ang mga ito ay binubuo lamang ng isang tag. Bilang karagdagan, nararapat ding tandaan na sa XML ang lahat ng mga pangalan ay case sensitive. Nangangahulugan ito na ang mga pangalang myElement, MyElement, MYELEMENT, atbp. magkaiba sa isa't isa, samakatuwid sa ngayon Ito ay nagkakahalaga ng pag-alala kaagad upang maiwasan ang mga pagkakamali sa hinaharap.
Kaya, nalaman namin ang mga elemento. Ngayon ay lumipat tayo sa susunod na punto tulad ng lohikal na organisasyon Mga dokumentong XML.

Lohikal na organisasyon ng mga XML na dokumento. Puno ng istraktura ng XML data

Tulad ng naaalala mo, ang pangunahing konstruksyon ng XML na wika ay mga elemento, na maaaring maglaman ng iba pang mga nested na konstruksyon at sa gayon ay bumubuo hierarchical na istraktura sa anyo ng isang puno. Sa kasong ito elemento ng magulang ay magiging ugat, at lahat ng iba pang mga bata ay magiging mga sanga at dahon ng XML tree.

Upang mas madaling maunawaan ang nasa itaas, tingnan natin ang sumusunod na larawan na may isang halimbawa.

Tulad ng nakikita natin, ang pag-aayos ng isang XML na dokumento bilang isang puno ay isang medyo simpleng istraktura upang iproseso. Kasabay nito, ang nagpapahayag na pagiging kumplikado ng puno mismo ay napakahusay. Ito ay ang representasyon ng puno na ang pinaka sa pinakamahusay na posibleng paraan paglalarawan ng mga bagay sa XML.

Mga katangian ng XML. Mga panuntunan para sa pagsulat ng mga katangian sa XML

Sa XML, ang mga elemento ay maaari ding maglaman ng mga katangian na may mga halagang itinalaga sa kanila, na inilalagay sa solong o dobleng panipi. Ang katangian para sa isang elemento ay itinakda tulad ng sumusunod:

SA sa kasong ito ginamit ang isang attribute na may pangalang "attribute" at ang value na "value". Mahalagang tandaan kaagad na ang XML attribute ay dapat maglaman ng ilang halaga at hindi maaaring walang laman. Kung hindi, ang code ay magiging mali mula sa isang XML point of view.

Ito rin ay nagkakahalaga ng pagbibigay pansin sa paggamit ng mga panipi. Ang mga halaga ng katangian ay maaaring isama sa isa o dobleng panipi. Bilang karagdagan, posible ring gumamit ng ilang mga panipi sa loob ng iba. Upang ipakita, isaalang-alang ang mga sumusunod na halimbawa.

Bago natin tingnan ang iba pang mga konstruksyon ng XML, nararapat ding tandaan na kapag lumilikha ng mga katangian, ang mga espesyal na character tulad ng ampersand "&" o angle bracket " ay hindi maaaring gamitin bilang mga halaga.<>" Ang mga character na ito ay nakalaan bilang control character (“&” ay isang entity, at “<» и «>" buksan at isara ang isang tag ng elemento) at hindi magagamit sa " purong anyo" Upang magamit ang mga ito, kailangan mong palitan ang mga espesyal na character.

Mga tagubilin sa pagproseso ng XML (mga tagubilin sa pagproseso). deklarasyon ng XML

Ang XML ay may kakayahang magsama ng mga tagubilin sa isang dokumento na nagdadala ng partikular na impormasyon para sa mga application na magpoproseso ng isang partikular na dokumento. Ang mga tagubilin sa pagproseso sa XML ay nilikha tulad ng sumusunod.

Tulad ng makikita mula sa halimbawa sa itaas, sa Mga tagubilin sa XML ang pagproseso ay ang mga sumusunod: kanto quotes may tandang pananong. Ito ay medyo katulad ng karaniwan na aming tiningnan sa unang mga aralin sa PHP. Ang unang bahagi ng pagtuturo sa pagproseso ay tumutukoy sa aplikasyon o sistema kung saan nilalayon ang ikalawang bahagi ng pagtuturo na ito o ang mga nilalaman nito. Gayunpaman, ang mga tagubilin sa pagproseso ay may bisa lamang para sa mga aplikasyon kung saan sila tinutugunan. Ang isang halimbawa ng pagtuturo sa pagproseso ay maaaring ang sumusunod na tagubilin.

Ito ay nagkakahalaga ng pagpuna na ang XML ay may isang espesyal na konstruksyon na halos kapareho sa isang pagtuturo sa pagproseso, ngunit ito mismo ay hindi isa. Ito ay tungkol sa tungkol sa isang deklarasyon ng XML na naghahatid sa software ng pagproseso ng ilang impormasyon tungkol sa mga katangian ng XML na dokumento, tulad ng pag-encode, ang bersyon ng wika kung saan ito nakasulat dokumentong ito atbp.

Tulad ng makikita mo mula sa halimbawa sa itaas, ang XML declaration ay naglalaman ng tinatawag na pseudo-attributes, na halos kapareho sa mga regular na attribute na pinag-usapan natin sa itaas. Ang katotohanan ay, sa pamamagitan ng kahulugan, ang isang XML deklarasyon at mga tagubilin sa pagproseso ay hindi maaaring maglaman ng mga katangian, kaya ang mga deklarasyon na ito ay tinatawag na mga pseudo-attribute. Ito ay nagkakahalaga ng pag-alala para sa hinaharap upang maiwasan ang iba't ibang mga pagkakamali.

Dahil nakipag-usap tayo sa mga pseudo-attribute, tingnan natin kung ano ang ibig sabihin ng mga ito.

  • Encoding – responsable para sa pag-encode ng XML na dokumento. Karaniwang ginagamit ang pag-encode ng UTF8.
  • Bersyon – ang bersyon ng XML na wika kung saan nakasulat ang dokumentong ito. Kadalasan ito Mga bersyon ng XML 1.0.

Kaya, ngayon ay lumipat tayo sa pangwakas na bahagi ng artikulo at isaalang-alang ang mga naturang XML construct bilang mga komento at mga seksyon ng CDATA.

alam mo ba Ano ang kamalian ng konsepto ng "pisikal na vacuum"?

Pisikal na vacuum - ang konsepto ng relativistic quantum physics, kung saan ang ibig nilang sabihin ay mas mababa (basic) estado ng enerhiya quantized field na mayroong zero momentum, angular momentum at iba pang quantum number. Tinatawag ng mga relativistikong teorya ang isang pisikal na vacuum na isang puwang na ganap na walang bagay, na puno ng isang hindi masusukat, at samakatuwid ay haka-haka lamang, na larangan. Ang ganitong estado, ayon sa mga relativist, ay hindi isang ganap na walang bisa, ngunit isang puwang na puno ng ilang multo (virtual) na mga particle. relativistiko teoryang quantum fields ay nagsasaad na, alinsunod sa Heisenberg uncertainty principle, virtual, iyon ay, maliwanag (maliwanag para kanino?), Ang mga particle ay patuloy na ipinanganak at nawawala sa pisikal na vacuum: ang tinatawag na zero-point field oscillations ay nagaganap. Ang mga virtual na particle ng pisikal na vacuum, at samakatuwid mismo, sa pamamagitan ng kahulugan, ay walang sistema ng sanggunian, dahil kung hindi, ang prinsipyo ng relativity ni Einstein, kung saan nakabatay ang teorya ng relativity, ay malalabag (iyon ay, isang ganap na sistema ng pagsukat na may sanggunian sa mga particle ng pisikal na vacuum ay magiging posible, na kung saan ay malinaw na pasinungalingan ang prinsipyo ng relativity kung saan nakabatay ang SRT). Kaya, ang pisikal na vacuum at ang mga particle nito ay hindi mga elemento ng pisikal na mundo, ngunit mga elemento lamang ng teorya ng relativity na hindi umiiral sa totoong mundo, ngunit sa mga relativistic formula lamang, lumalabag sa prinsipyo ng causality (bumangon sila at nawawala nang walang dahilan), ang prinsipyo ng objectivity (maaaring isaalang-alang ang mga virtual na particle, depende sa pagnanais ng theorist, alinman sa umiiral o hindi umiiral), ang prinsipyo ng factual na pagsukat (hindi napapansin, walang sariling ISO ).

Kapag ang isa o ibang physicist ay gumamit ng konsepto ng "pisikal na vacuum," maaaring hindi niya nauunawaan ang kahangalan ng terminong ito, o hindi matapat, bilang isang nakatago o lantarang tagasunod ng relativistikong ideolohiya.

Ang pinakamadaling paraan upang maunawaan ang kahangalan ng konseptong ito ay ang bumaling sa mga pinagmulan ng paglitaw nito. Ipinanganak ito ni Paul Dirac noong 1930s, nang maging malinaw na ang pagtanggi sa eter sa dalisay nitong anyo, tulad ng ginawa ng isang mahusay na matematiko ngunit isang pangkaraniwang pisiko, ay hindi na posible. Napakaraming katotohanan na sumasalungat dito.

Upang ipagtanggol ang relativism, ipinakilala ni Paul Dirac ang aphysical at illogical na konsepto ng negatibong enerhiya, at pagkatapos ay ang pagkakaroon ng isang "dagat" ng dalawang enerhiya na nagbabayad sa bawat isa sa isang vacuum - positibo at negatibo, pati na rin ang isang "dagat" ng mga particle na nagbabayad sa bawat isa. iba pa - virtual (iyon ay, maliwanag) mga electron at positron sa isang vacuum.

Ngayon ay magsisimula kaming isaalang-alang ang isang napaka-tanyag at maginhawa XML markup language. kasi ang format na ito Ang representasyon ng data ay napaka-flexible at unibersal, at maaari itong gamitin halos kahit saan, ibig sabihin ay may kaugnayan sa isang bagay. Samakatuwid, ang isang baguhang programmer ay maaga o huli ay kailangang harapin ang wikang ito, at hindi mahalaga kung ano ang eksaktong gagawin mo, maging ito man ay web programming o database administration, dahil lahat ay gumagamit ng XML, at gagamitin mo rin ito upang ipatupad ang mga gawain. kailangan mo.

Magsisimula tayo, gaya ng dati, sa teorya, tingnan natin kung anong uri ng wika ito, bakit ito maganda, paano ito gamitin at kung saan ito ginagamit.

Kahulugan ng Wika ng XML

XML (mapapahaba Markup Language ) ay isang universal at extensible data markup language na hindi nakadepende sa operating system at mga kapaligiran sa pagpoproseso. Ang Xml ay ginagamit upang ipakita ang ilang partikular na data sa anyo ng isang istraktura, at maaari mong bubuoin ang istrakturang ito sa iyong sarili o i-customize ito para sa isang partikular na programa o ilang serbisyo. kaya lang binigay na wika Tinatawag nila itong napapalawak, at ito ang pangunahing bentahe nito, kung saan ito ay pinahahalagahan.

Tulad ng alam mo, mayroong maraming mga markup na wika, halimbawa, ang HTML na wika, ngunit lahat ng mga ito, sa isang paraan o iba pa, ay nakasalalay sa processor, halimbawa, ang parehong html, ang code kung saan na-parse ng browser, ay standardized at hindi extensible, may malinaw na mga tag doon, syntax na hindi maaaring labagin, at sa xml maaari kang lumikha ng iyong sariling mga tag, i.e. iyong markup. Pangunahing Mga parangal sa HTML at ang XML ay ang html na iyon ay naglalarawan lamang ng markup para sa pagpapakita ng data, at ang xml ay isang abstract na istraktura ng data na maaaring iproseso at ipakita ayon sa gusto mo at kahit saan, at samakatuwid ay hindi na kailangang ihambing ang mga wikang ito, mayroon silang ganap na magkakaibang mga layunin.

Tulad ng nabanggit sa itaas, ang xml ay napakakaraniwan at wikang unibersal, kung saan halos lahat ng mga application, parehong web at para lamang sa computer, ay ginagamit ito bilang isang pagpapalitan ng impormasyon, dahil sa tulong nito ay napakadali mong makapagpalitan ng data sa pagitan ng mga application o serbisyo na kahit na nakasulat sa iba't ibang wika. Kaugnay nito, ang bawat baguhang programmer na kasangkot sa ganap na anumang programming ay dapat magkaroon ng pang-unawa sa XML. Kung gusto mong maging isang web master, dapat lang na alam mo ang XML, at napag-usapan na namin kung paano maging isang WEB Master at kung ano ang kailangan mong malaman para dito.

Halimbawa, minsan ay nagkaroon ako ng gawain sa pagsulat ng isang partikular na serbisyo na, kapag hiniling, ay dapat magbalik ng data xml form, ibig sabihin. uri ng pag-unlad bahagi ng server application, at wala akong ideya kung saan isinulat ang kliyente na magpoproseso ng data na ito, at na nagsulat ako ng serbisyo na nagbabalik ng data sa xml form at iyon lang, gumana nang perpekto ang application. At ito ay isang halimbawa lamang na kailangan kong harapin, ngunit ngayon isipin kung gaano karaming iba't ibang mga organisasyon ang nagtutulungan at tapat na bumuo software at palitan ng data, at hindi ako magtataka na ang data na ito ay nasa xml form.

Halimbawa, minsan ay nagkaroon ako ng gawain na magsulat ng isang partikular na serbisyo na dapat magbalik ng data sa xml form kapag hiniling, i.e. isang uri ng pagbuo ng bahagi ng server ng application, at wala akong ideya kung saan nakasulat ang kliyente na magpoproseso ng data na ito, at na nagsulat ako ng isang serbisyo na nagbabalik ng data sa xml form at iyon lang, gumana nang perpekto ang application . At ito ay isang halimbawa lamang na kailangan kong harapin, ngunit ngayon isipin kung gaano karaming iba't ibang mga organisasyon ang nagtutulungan at tapat na bumuo ng software at palitan ng data, at hindi ako magtataka na ang data na ito ay nasa xml form.

Kinailangan ko ring mag-imbak minsan xml data sa MS SQL 2008 database, upang mas mahusay na kumatawan sa parehong data at palitan ito sa pagitan ng server at panig ng kliyente mga application, tiningnan namin ito sa artikulo - Transact-sql - nagtatrabaho sa xml.

Ang wikang XML mismo ay napaka-simple, at imposibleng malito dito ang lahat ng pagiging kumplikado ay tiyak na lumitaw sa pagproseso at pakikipag-ugnayan ng XML sa iba pang mga application, teknolohiya, i.e. lahat ng bagay na nakapaligid sa xml, na kung saan madali kang malito.

Ngayon ay pinag-uusapan lamang natin ang tungkol sa mga pangunahing kaalaman ng XML, at hindi tayo tututuon sa mga teknolohiya para sa pagproseso at pakikipag-ugnayan sa wikang ito, dahil ito ay totoo, napakaraming materyal, ngunit sa palagay ko sa hinaharap ay patuloy tayong makikilala sa mga kaugnay na teknolohiya .

Magpatuloy tayo sa pagsasanay. At isusulat ko ang lahat ng mga halimbawa na isasaalang-alang natin sa Notepad++ dahil ito ay napaka-maginhawa, ngunit hindi natin ito pag-uusapan ngayon, dahil napag-usapan na natin ito sa artikulo - Bakit ang Notepad++ ay mabuti para sa isang baguhan na developer.

Mga XML tag

Gumagamit ang wikang XML ng mga tag ( case sensitive ang mga tag), ngunit hindi ang parehong mga tag tulad ng sa html, ngunit ang mga naisip mo sa iyong sarili, ngunit ang xml na dokumento ay mayroon ding malinaw na istraktura, i.e. mayroong isang pambungad na tag at isang pansarang tag, mayroong mga nested na tag at, siyempre, may mga halaga na matatagpuan sa mga tag na ito. Sa madaling salita, lahat ng kailangan mo pangunahing kaalaman xml ay para lamang sundin ang mga patakarang ito. Magkasama, ang pambungad, pagsasara ng tag at halaga ay tinatawag na isang elemento, at ang buong xml na dokumento ay binubuo ng mga elemento na magkasamang bumubuo ng isang istraktura ng data. Ang isang xml na dokumento ay maaari lamang magkaroon ng isang elemento ng ugat, tandaan ito, dahil kung magsusulat ka ng dalawang elemento ng ugat, ito ay magiging isang error.

At oras na para dalhin halimbawa xml markup, at ang unang halimbawa sa ngayon para sa syntax:

<Начало элемента> <Начало вложенного элемента>Nested na halaga ng elemento

Tulad ng nakikita mo, ang lahat ay medyo simple, at maaaring mayroong maraming mga naturang elemento na nakapugad sa bawat isa.

Ngayon magbigay tayo ng isang halimbawa ng isang tunay na xml na dokumento:

Tulad ng nakikita mo, nagbigay lang ako ng isang halimbawa ng isang uri ng katalogo ng libro dito, ngunit hindi ko idineklara ang dokumentong ito, i.e. Hindi ako nagsulat ng XML na deklarasyon na nagsasabi sa application na magpoproseso ng data na ito na ang xml data ay matatagpuan dito at sa kung anong pag-encode ito ipinakita. Maaari ka ring magsulat ng mga komento at mga katangian, kaya magbigay tayo ng isang halimbawa ng naturang dokumento:

Aklat 1 Ivan Book 1 pa lang Aklat 2 Sergey Book 2 lang Aklat 3 nobela Book 3 na lang

Kung saan ang unang linya ay ang deklarasyon na ito ay isang XML na dokumento at dapat basahin sa UTF-8 encoding.

Ang data na ito nang walang pagpoproseso ay magiging hitsura, halimbawa, sa isang browser (Mozilla Firefox) tulad ng sumusunod:

Umaasa ako na naiintindihan mo na dito ang katalogo ay ang root element, na binubuo ng mga elemento ng libro, na binubuo naman ng pangalan, may-akda at mga elemento ng komento, at para sa halimbawa, nagtakda din ako ng ilang mga katangian para sa elemento ng catalog at elemento ng libro. .

Para sa mga pangunahing kaalaman, sa palagay ko ay sapat na iyon, dahil kung sumisid tayo nang mas malalim at mas malalim sa XML, at sa lahat ng mga teknolohiyang nauugnay sa wikang ito, hindi na magtatapos ang artikulong ito. Kaya iyon lang para sa araw na ito. Bye!

20. Mga wika para sa paglalarawan ng XML schema

Mga scheme ng DTD. Mga disadvantages ng mga scheme ng DTD. Mga XDR circuit. Mga elemento at katangian ng mga XDR scheme.

Ang ideya ng paglikha ng iyong sariling mga tag na may espesyal na kahulugan at makakatulong na ilarawan ang nilalaman ng isang dokumento ay kahanga-hanga sa sarili nito. Ngunit kung ang bawat gumagamit ay maaaring lumikha ng kanilang sariling mga paglalarawan, paano sila makikilala? Sa layuning ito, ang XML na detalye ay gumagamit ng mga schema upang ilarawan ang mga naturang "homemade" na tag. Kinakailangan ang mga ito upang:

    ilarawan kung ano ang eksaktong markup;

    ilarawan nang eksakto kung ano ang ibig sabihin ng markup.

Ang pinakakilalang mga wika sa paglalarawan ng schema ay ang mga sumusunod:

    Ang DTD (Document Type Definition) ay isang wika ng kahulugan ng uri ng dokumento na orihinal na ginamit bilang isang wika para sa paglalarawan ng istruktura ng isang SGML na dokumento.

    Ang XDR (XML Data Reduced) ay isang XML schema dialect na binuo ng Microsoft na suportado sa Internet Explorer na bersyon 4 at 5.

    Ang XML Schema o simpleng XSD (XML Schema Definition Language) ay isang rekomendasyon ng W3C mula noong 2001.

Tingnan natin ang unang dalawa sa kanila. Ang pangatlong wika ng paglalarawan ng circuit ay sakop sa Lab 11.

scheme ng DTD

Ang isang schema ng DTD ay nagbibigay ng template ng markup ng dokumento na tumutukoy sa presensya, pagkakasunud-sunod, at pagsasaayos ng mga elemento at ang kanilang mga katangian sa isang XML na dokumento.

Sa mga tuntunin ng isang DTD, ang modelo ng nilalaman ng isang XML na dokumento ay maaaring ilarawan bilang mga sumusunod:

Ang bawat elemento ng dokumento ay maaaring magkaroon ng isa sa mga sumusunod na uri:

Syntax

Magkomento

Naglalaman lamang ng data ng teksto

Iba pang mga elemento

Naglalaman lamang ng mga elemento ng bata

Mixed

Naglalaman ng kumbinasyon ng data ng text at mga elemento ng bata

Walang laman

Ang mga katangiang matatagpuan sa loob ng mga tag ng dokumento ay inilarawan nang hiwalay gamit ang syntax:

element_name attribute_name1 (uri) default_value

…………………………………………………………………………………...

element_name attribute_nameN (uri) default_value >

Sa kasong ito, ang isang katangian sa isang DTD ay maaaring magkaroon ng isa sa tatlong uri:

  • May label na katangian

    Katangian na may enumeration

Bilang karagdagan sa uri ng katangian, maaari mo ring itakda ang modality nito:

Isaalang-alang, bilang halimbawa, ang paglalarawan ng mga katangian ng isang uri ng string para sa isang elementong naglalarawan sa isang mensahe:

number CDATA #REQUIRED

petsa CDATA #REQUIRED

mula sa CDATA #FIXED

katayuan CDATA #IMPLIED>

Kung ang elementong ito ay naglalaman ng mga enumerated na katangian, ang kanilang paglalarawan ay maaaring magmukhang, halimbawa, tulad nito:

number ID #REQUIRED

mula sa CDATA #REQUIRED

alerto (mababa | normal | agarang) "normal">

Ang mga may label na katangian ng elemento ay maaaring may apat na uri:

Panghuli, ang mga sumusunod na sequence occurrence indicator ay maaaring gamitin sa DTD:

Simbolo

Halimbawa

Paglalarawan

Magkasunod na paggamit ng mga elemento ng listahan

Isa sa mga miyembro ng listahan ang ginagamit

Isa at isang elemento lamang ang ginagamit

Opsyonal na paggamit (0 o 1 beses)

Ginamit ng isa o higit pang beses

Ginamit zero o higit pang beses

Bilang halimbawa, narito ang isang diagram ng DTD na naglalarawan sa istruktura ng isang electronic mailbox:

Ang pinagmumulan ng XML na dokumento na nakakatugon sa schema na ito ay maaaring magmukhang, halimbawa, tulad nito:

[email protected]

[email protected]

Re:

[email protected]

[email protected]

Paalalahanan

[email protected]

Paalalahanan ako tungkol sa pagpupulong.

Bigyang-pansin ang ika-2 linya ng dokumento, na nagpapahiwatig ng panlabas na link sa file na naglalaman ng schema ng DTD.

Karaniwan, ang isang DTD ay nagbibigay-daan sa dalawang paraan ng paggamit sa isang XML na dokumento.

Panloob na deklarasyon ng schema:

Pagdedeklara ng panlabas na schema:

Sa konklusyon, itinuturo namin ang mga sumusunod na disadvantages ng mga scheme ng DTD:

    Ang mga ito ay hindi XML instance. Ito ay nangangailangan ng pag-aaral ng isang ganap na naiibang wika.

    Hindi sila nagbibigay ng kontrol sa mga uri ng data maliban sa napakasimpleng data ng text.

    Ang mga ito ay hindi XML instance, kaya hindi sila madaling ma-extend o ma-convert sa iba pang markup language gaya ng HTML o DHTML.

    Hindi nagbibigay ng suporta para sa mga XML namespace.

XDR circuit

Ang XML-Data ay ang buong pangalan ng schema language ng Microsoft, at ang XML-DataReduced ay "bahagi" ng buong rekomendasyon. Ang XDR schema ay isang instance ng XML, i.e. Sumusunod sa lahat ng mga panuntunan sa syntax at mga pamantayan ng XML.

Sa pamamagitan ng pagpapatupad ng mga pagsusuri sa data sa antas ng dokumento gamit ang schema, ang mga application na bumubuo at tumatanggap ng mga transaksyon ay maaaring ma-optimize para sa maximum na pagganap. Ang pagtutugma ng field at validity ng tala ay sinusuri sa antas ng instance ng XML.

Ang root element sa isang XDR schema ay palaging ang Schema element:

name="schema_name" xmlns="urn:schemas-microsoft-com:xml-data"

xmlns:dt="urn:schemas-microsoft-com:datatypes">

<-- Объявления других элементов -->

Ang elemento ng ElementType ay may syntax:

content="(walang laman | texOnly | eltOnly | mixed)">

dt:type "datatype"

model="(bukas | sarado)"

order="(isa | seq | marami)"

Ang isang ElementType na elemento ay maaaring magkaroon ng mga sumusunod na katangian:

Pangalan ng katangian

Paglalarawan

Pangalan ng elemento

Uri ng data ng item

Maaaring kumuha ng mga halaga:

Buksan - pinapayagan gamitin mga elementong hindi tinukoy sa schema

Sarado – ipinagbabawal ang paggamit ng mga elementong hindi tinukoy sa schema

Ang pagkakasunud-sunod ng mga elemento ng bata sa isang XML instance. Mga wastong halaga:

isa – isang dokumento ang ipinapalagay na umiiral

marami – anumang bilang ng mga elemento sa anumang pagkakasunud-sunod

seq - ang mga elemento ay tinukoy sa isang mahigpit na tinukoy na pagkakasunud-sunod.

Ang mga sumusunod ay maaaring gamitin bilang mga elemento ng bata para sa ElementType:

Pangalan ng elemento

Paglalarawan

Nagdedeklara ng child element

Nagbibigay ng paglalarawan ng ElementType

Nagbibigay ng uri ng data ng elemento na ElementType

Tinutukoy ang pagkakasunud-sunod ng mga elemento

Tinutukoy ang isang katangian

Tinutukoy ang impormasyon tungkol sa AttributeType ng elemento ng bata

Ang syntax na ginamit upang magdeklara ng mga katangian ay:

default="default-value"

dt:type="primitive-type"

dt:values="enumerated-values"

kinakailangan="(oo|hindi)"

Sa turn, ang AttributeType na elemento ay maaaring magkaroon ng mga sumusunod na katangian:

Ibig sabihin

Paglalarawan

Default na halaga

Isa sa mga sumusunod na uri:

entity, entity, enumeration, id, idref, nmtoken, nmtokens, notation, string

Mga wastong halaga

Pangalan ng katangian

Isinasaad na ang isang katangian ay dapat na naroroon sa paglalarawan

Ang syntax para sa paglalarawan ng isang elemento ng katangian ay ang mga sumusunod:

default="default-value"

type="attribute-type"

at ang mga posibleng halaga nito ay maaaring:

Ibig sabihin

Tinutukoy ng pamantayan ang dalawang antas ng kawastuhan para sa isang XML na dokumento:

  • Tamang pagkakagawa(Well-formed). Ang isang mahusay na nabuong dokumento ay sumusunod sa lahat ng pangkalahatang tuntunin ng XML syntax na nalalapat sa anumang XML na dokumento. At kung, halimbawa, ang panimulang tag ay walang katumbas na tag ng pagtatapos, kung gayon ito mali ang pagkakagawa XML na dokumento. Ang isang dokumento na hindi wastong pagkakagawa ay hindi maaaring ituring na isang XML na dokumento; Ang XML processor (parser) ay hindi dapat iproseso ito nang normal at dapat na uriin ang sitwasyon bilang isang nakamamatay na error.
  • Wasto(May bisa). Ang isang wastong dokumento ay naaayon din sa ilang partikular na tuntunin sa semantiko. Ito ay isang mas mahigpit na karagdagang pagsusuri ng katumpakan ng dokumento para sa pagsunod sa mga paunang natukoy, ngunit nasa panlabas na mga panuntunan, upang mabawasan ang bilang ng mga error, halimbawa, ang istraktura at komposisyon ng isang ibinigay, partikular na dokumento o pamilya ng mga dokumento. Ang mga panuntunang ito ay maaaring binuo ng user mismo o ng mga third-party na developer, halimbawa, mga developer ng mga diksyunaryo o mga pamantayan sa pagpapalitan ng data. Karaniwan, ang mga naturang patakaran ay naka-imbak sa mga espesyal na file - mga diagram, kung saan ang istraktura ng dokumento, lahat ng wastong pangalan ng mga elemento, mga katangian, at marami pa ay inilarawan nang detalyado. At kung ang isang dokumento, halimbawa, ay naglalaman ng isang pangalan ng elemento na hindi dating tinukoy sa mga schema, kung gayon ang XML na dokumento ay isasaalang-alang walang bisa; Kapag sinusuri ang pagsunod sa mga panuntunan at schema, ang pagsuri ng XML processor (validator) ay obligado (sa pagpili ng user) na mag-ulat ng error.

Ang dalawang konseptong ito ay walang mahusay na itinatag na pamantayang pagsasalin sa Russian, lalo na ang konsepto wasto, na maaari ding isalin bilang wasto, lehitimo, maaasahan, magkasya, o kahit na sinubok para sa pagsunod sa mga tuntunin, pamantayan, batas. Ang ilang mga programmer ay gumagamit ng itinatag na tracing paper sa pang-araw-araw na buhay " Wasto».

XML syntax

Tinatalakay lamang ng seksyong ito tamang konstruksyon XML na mga dokumento, iyon ay, ang kanilang syntax.

Ang XML ay isang hierarchical na istraktura na idinisenyo upang mag-imbak ng anumang data sa visual na ang istraktura ay maaaring kinakatawan bilang isang puno. Ang pinakamahalagang ipinag-uutos na kinakailangan sa syntactic ay ang dokumento ay may isa lamang elemento ng ugat(root element) (alternatibong tinatawag elemento ng dokumento). Nangangahulugan ito na ang teksto o iba pang data ng buong dokumento ay dapat na matatagpuan sa pagitan ang nag-iisa isang start root tag at ang katumbas nitong end tag.

Ang sumusunod na pinakasimpleng halimbawa ay isang mahusay na nabuong XML na dokumento: Ito ang aklat: "Munting Aklat" Ang unang linya ng XML na dokumento ay tinatawag deklarasyon ng XML(Deklarasyon ng XML) ay isang opsyonal na string na nagsasaad ng bersyon ng XML standard (karaniwan ay 1.0), at maaari ring magsama ng pag-encode ng character at mga external na dependency. Ang detalye ay nangangailangan ng mga XML processor na suportahan ang Unicode encodings na UTF-8 at UTF-16 (UTF-32 ay opsyonal). Ang iba pang mga pag-encode batay sa pamantayang ISO/IEC 8859 ay kinikilala bilang katanggap-tanggap, suportado at malawakang ginagamit (ngunit hindi kinakailangan ang iba pang mga pag-encode ay katanggap-tanggap din, halimbawa, ang Russian Windows-1251, KOI-8);

Magkomento maaaring ilagay kahit saan sa puno. Ang mga komentong XML ay inilalagay sa loob ng isang pares ng mga tag . Hindi magagamit ang dalawang gitling (--) kahit saan sa loob ng isang komento.

Nasa ibaba ang isang halimbawa ng isang simple recipe sa pagluluto, minarkahan ng gamit ang XML:

Simpleng tinapay harina lebadura Mainit na tubig asin

Istruktura

Ang natitirang bahagi ng XML na dokumentong ito ay binubuo ng nested elemento, ang ilan ay mayroon mga katangian At nilalaman. Elemento karaniwang binubuo ng mga pambungad at pagsasara ng mga tag na nakapaloob sa teksto at iba pang mga elemento. Pagbubukas ng tag binubuo ng pangalan ng elemento sa mga angle bracket, halimbawa, " »; closing tag binubuo ng parehong pangalan sa mga anggulong bracket, ngunit ang isang forward slash ay idinagdag bago ang pangalan, halimbawa, " ». Nilalaman ng elemento Ang (nilalaman) ay lahat ng bagay na matatagpuan sa pagitan ng pambungad at pagsasara ng mga tag, kabilang ang text at iba pang (nested) na elemento. Nasa ibaba ang isang halimbawa ng isang XML na elemento na naglalaman ng pambungad na tag, isang end tag, at ang nilalaman ng elemento:

Masahin muli, ilagay sa isang baking sheet at ilagay sa oven.

harina

Sa halimbawa sa itaas, ang sangkap ng sangkap ay may dalawang katangian: halaga, na may value na 3, at unit, na may value glass. Mula sa punto ng view ng XML markup, ang mga katangian sa itaas ay walang anumang kahulugan, ngunit isang hanay lamang ng mga character.

Bilang karagdagan sa teksto, ang isang elemento ay maaaring maglaman ng iba pang mga elemento:

Paghaluin ang lahat ng sangkap at masahin nang maigi. Takpan ng tela at mag-iwan ng isang oras sa isang mainit na silid. Masahin muli, ilagay sa isang baking sheet at ilagay sa oven.

Sa kasong ito, ang elemento ng Mga Tagubilin ay naglalaman ng tatlong elemento ng hakbang. Hindi pinapayagan ng XML ang mga magkakapatong na elemento. Halimbawa, ang sumusunod na snippet ay hindi tama dahil ang "em" at "strong" na mga elemento ay nagsasapawan.

Ordinaryo impit highlight at accented nakatuon

Ang bawat XML na dokumento ay dapat maglaman ng eksaktong isa elemento ng ugat(root element o elemento ng dokumento), kaya hindi maituturing na wastong XML na dokumento ang sumusunod na fragment.

Entity #1 Entity #2

Upang tukuyin ang isang elemento na walang nilalaman, tinatawag walang laman na elemento , kailangan mag-apply espesyal na hugis isang entry na binubuo ng isang tag kung saan inilalagay ang isang slash pagkatapos ng pangalan ng elemento. Kung ang isang elemento ay hindi idineklara na walang laman sa DTD, ngunit wala itong nilalaman sa dokumento, para dito pinapayagan gamitin ang form na ito ng pag-record. Halimbawa:

Tinutukoy ng XML ang dalawang paraan ng pag-record mga espesyal na karakter: sanggunian ng entidad at sanggunian ng numero ng simbolo. Kakanyahan(entity) sa XML ay tumutukoy sa pinangalanang data, kadalasang teksto, sa partikular na mga espesyal na character. Sanggunian ng entidad(mga sanggunian sa entity) ay tinukoy sa lugar kung saan dapat naroroon ang entity at binubuo ng isang ampersand (“&”), ang pangalan ng entity at isang semicolon (“;”). Mayroong ilang mga paunang-natukoy na entity sa XML, tulad ng "lt" (maaari mong i-refer ito sa pamamagitan ng pagsulat ng "< ») для левой угловой скобки и « amp » (ссылка - « & ») для амперсанда, возможно также определять собственные сущности. Помимо записи с помощью сущностей indibidwal na mga karakter, magagamit ang mga ito upang i-record ang mga madalas na nangyayaring mga bloke ng teksto. Nasa ibaba ang isang halimbawa ng paggamit ng paunang natukoy na entity upang maiwasan ang paggamit ng ampersand sa pangalan:

AT&T

Ang kumpletong listahan ng mga paunang natukoy na entity ay binubuo ng & (“&”),< («<»), >(">"), " (""), at " ("") - ang huling dalawa ay kapaki-pakinabang para sa pagsulat ng mga delimiter sa loob ng mga value ng katangian. Maaari mong tukuyin ang iyong mga entity sa isang dokumento ng DTD.

Minsan ito ay kinakailangan upang matukoy hindi nasisira na espasyo, na kadalasang ginagamit sa HTML at tinutukoy bilang sa XML walang ganoong paunang natukoy na entity, ito ay nakasulat, at ang paggamit nito ay nagdudulot ng error. Ang kawalan ng pinakakaraniwang entity na ito ay kadalasang nagdudulot ng sorpresa sa maraming programmer, at lumilikha ito ng ilang mga paghihirap kapag inililipat ang kanilang mga pag-unlad sa HTML sa XML.

I-link ayon sa numero ng simbolo(numeric character reference) ay mukhang isang reference sa isang entity, ngunit sa halip na pangalan ng entity, ang character # at isang numero (sa decimal o hexadecimal notation) ay tinukoy, na kung saan ay ang numero ng character sa talahanayan ng code Unicode. Ito ay karaniwang mga character na hindi direktang ma-encode, tulad ng isang Arabic na titik sa isang ASCII-encoded na dokumento. Ang ampersand ay maaaring katawanin tulad ng sumusunod:

AT&T

Marami pang mga panuntunan tungkol sa paglikha ng isang wastong XML na dokumento, ngunit ang layunin nito maikling pangkalahatang-ideya Ito ay para lamang ipakita ang mga pangunahing kaalaman na kinakailangan upang maunawaan ang istruktura ng isang XML na dokumento.

Kwento

Ang taon ng kapanganakan ng XML ay maaaring ituring na 1996, sa dulo kung saan lumitaw ang isang draft na bersyon ng detalye ng wika, o kapag naaprubahan ang pagtutukoy na ito. Nagsimula ang lahat sa paglitaw ng wikang SGML noong 1986.

SGML (Standard Generalized Markup Language - pamantayan pangkalahatang wika markup) ay nagpahayag ng sarili bilang isang nababaluktot, komprehensibo at komprehensibong meta-language para sa paglikha ng mga markup na wika. Sa kabila ng katotohanan na ang konsepto ng hypertext ay lumitaw noong 1965 (at ang pinagbabatayan na mga prinsipyo ay nabuo noong 1945), ang SGML ay walang modelo ng hypertext. Ang paglikha ng SGML ay maaaring kumpiyansa na matatawag na isang pagtatangka na yakapin ang kalawakan, dahil pinagsasama nito ang mga kakayahan na napakabihirang ginagamit nang sama-sama. Ito ang pangunahing disbentaha nito - ang pagiging kumplikado at, bilang kinahinatnan, nililimitahan lamang ng mataas na halaga ng wikang ito ang paggamit nito malalaking kumpanya na kayang bumili ng naaangkop na software at umarkila ng mataas na bayad na mga espesyalista. Bilang karagdagan, sa maliliit na kumpanya Bihirang lumitaw ang mga problema na napakakumplikado kaya kailangan ng SGML upang malutas ang mga ito.

Ang SGML ay pinakamalawak na ginagamit upang lumikha ng iba pang mga markup language; mga dokumento ng hypertext- HTML, ang detalye kung saan naaprubahan noong 1992. Ang hitsura nito ay nauugnay sa pangangailangan na ayusin ang mabilis na pagtaas ng hanay ng mga dokumento sa Internet. Ang mabilis na paglaki sa bilang ng mga koneksyon sa Internet at, nang naaayon, ang mga Web server ay nagresulta sa ganoong pangangailangan para sa coding mga elektronikong dokumento, na hindi nakayanan ng SGML dahil sa mataas na curve ng pagkatuto nito. Ang pagdating ng HTML ay napaka simpleng wika markup - mabilis na nalutas ang problemang ito: ang kadalian ng pag-aaral at ang kayamanan ng mga tool sa paghahanda ng dokumento ay ginawa ito ng higit tanyag na wika para sa mga gumagamit ng Internet. Ngunit habang ang bilang at kalidad ng mga dokumento sa Web ay lumago, gayundin ang mga kinakailangan na inilagay sa kanila, at ang pagiging simple ng HTML ang naging pangunahing disbentaha nito. Ang limitadong bilang ng mga tag at kumpletong pagwawalang-bahala sa istruktura ng dokumento ay nag-udyok sa mga developer na kinakatawan ng W3C consortium na gumawa ng markup language na hindi magiging kasing kumplikado ng SGML at hindi kasing primitive ng HTML. Bilang resulta, pinagsama ang pagiging simple ng HTML sa markup logic ng SGML at ang pagtugon sa mga pangangailangan ng Internet, ipinanganak ang XML.

Mga kalakasan at kahinaan

Mga kalamangan

Mga kapintasan

  • Kalabuan ng pagmomodelo.
  • Ang XML ay walang suporta sa uri ng data na nakapaloob sa wika. Wala itong mahigpit na pag-type, iyon ay, ang mga konsepto ng "mga integer", "mga string", "mga petsa", " mga halaga ng boolean"atbp.
  • Ang hierarchical data model na inaalok ng XML ay limitado kumpara sa relational model at object-oriented na mga graph at modelo ng network datos.

Pagpapakita ng XML sa World Wide Web

Ang tatlong pinakakaraniwang paraan upang i-convert ang isang XML na dokumento sa isang form na maipapakita ng user ay:

  1. Paglalapat ng mga istilo ng CSS;
  2. Paglalapat ng pagbabagong XSLT;
  3. Pagsusulat ng XML document handler sa anumang programming language.

Kung wala gamit ang CSS o XSL Ang XML na dokumento ay ipinapakita bilang plain text sa karamihan ng mga Web browser. Ang ilang mga browser tulad ng Internet Explorer, Mozilla at Mozilla Firefox ay nagpapakita ng istraktura ng dokumento sa isang tree view, na nagbibigay-daan sa iyong i-collapse at palawakin ang mga node gamit ang mga pag-click ng mouse.

Paglalapat ng Mga Estilo ng CSS

Ang proseso ay katulad ng paglalapat ng CSS sa isang HTML na dokumento para ipakita.

Para sa paglalapat ng CSS Kapag ipinapakita sa isang browser, ang XML na dokumento ay dapat maglaman ng isang espesyal na link sa style sheet. Halimbawa:

Ito ay iba sa HTML approach, na gumagamit ng elemento .

Paglalapat ng XSLT transformation

Ang XSL ay isang teknolohiyang naglalarawan kung paano i-format o i-transform ang data ng XML na dokumento. Ang dokumento ay binago sa isang format na angkop para ipakita sa isang browser. Ang browser ay ang pinakakaraniwang paggamit ng XSL, ngunit huwag kalimutan na sa XSL maaari mong baguhin ang XML sa anumang format, hal.