Помогни ни да направим Uroci.net по - богат! Добави урок

Въведение в XML

Stalik   трудност:    видян: 237524



След това въведение в markup езиците, нека разгледаме конкретно XML. Всеки XML документ трябва да започва с тага <!---->Обикновено се включва и атрибута verion, указващ използваната версия (за момента 1.0): <!--l version=1.-->В XML почти няма предварително определени тагове (с изключение на няколко служебни, какъвто е <!---->, но тях ще разгледаме по-късно). Всеки таг трябва да има затварящ таг, а ако тага няма вътрешно съдържание (такова, което е между отварящия и затварящия таг) то се използва самозатварящ се таг - тагъв, който завършва със символа "/". Т.е. вместо да пишете можете да напишете Таговете трябва правилно да се влагат - т.е. можете в рамките на един таг да дефинирате множество тагове, но трябва да ги затворите в реда, обратен на тяхното отваряне. Ще илюстрирам това с един пример:

 

Код:
<books>
<type>
<style>programming book
<name>
<title>Thinking in Java</title>
<author>Bruce Eckel</author>
<subject>Java</subject>
</name>
<name>
<title>Mastering Delphi 6</title>
<author>Marco Cantu</author>
<subject>Delphi</subject>
</name>
</style>
</type>
</books>

<!--таг2--><!--таг1--><!--таг1--><!--таг2-->

 

Или с други думи, декларацията <таг1><таг2> е валидна, докато <таг1><таг2> - не е. XML документа има дървовидна структура - тази структура може да има един-единствен корен. Т.е. трябва да имате един таг, в който да се съдържат всички останали. В предишния ни пример, това беше тагът

. Въщност това е една йерархична структура, първия елемент от която се нарича root (а е възможно да същестува само един root) и всеки таг, който се съдържа в него се нарича дъщерен таг. От своя страна, root се явява родителски таг за всички съдържащи се в него елементи. Ако разгледаме отново примера с книгите, то <name> е дъщерен таг на <style> и родителски на <author> и <subject>. С това приключва цялата философия на XML - няма нито един таг, който трябва да научите, нито пък някой атрибут. Ако сте разбрали концепциите дотук, то вие сте готови за работа с XML.

Но все пак, това далеч не е всичко. В XML съществуват служебни тагове, които започват с удивителна (!). Те се използват за дефиниране структурата на документа. Тъй като XML няма нито определени тагове, нито определени атрибути, то програмата няма как да знае какво е съдържанието на XML документа. Тя може просто да предположи, че то отговаря на нейните критерии и да го използва така, както би използвала валиден XML документ. Но ако то не отговаря на изискванията? Тук е мястото да разгледаме обработването на данните в XML документа и XML-процесорите. Програма, която интерпретира по някакъв начин XML документ и извежда резултата на екрана, се нарича XML процесор. Процесора може да проверява дали документа е валиден, но това не е задължително. Когато процесора проверява XML документа, той може да установи само грешки в XML синтаксиса (незатворени тагове и т.н.), до момента, в който той не знае каква трябва да бъде структурата на документа. Един от основните начини за определяне на структурата на документа е DTD (Document Type Definition - дефиниция на типа на документа) - система от служебни XML тагове, които описват какви тагове се очаква да присъстват в документа, какви атрибути и дъщерни тагове могат да имат те, какви са позволените стойности на атрибутите. По този начин процесора може да открие грешка и да изведе информативно съобщение, вместо да интерпретатора данни, които не подхождат за програмата. Именно създаването на DTD ще разгледаме сега, за да преминем после към използването на XML в web. Дефиницията се слага в началото на документа. Може също така да се използва външен .dtd файл - това е особено полезно, когато множество документи имат една и съща дефиниция или при големи дефиниции, за да бъдат по-удобни за работа както самата дефиниция, така и документа. Дефиницията на документа започва с тага <!DOCTYPE> Следва име на дефиницията. Ако дефиницията е във външен файл се използва ключовата дума SYSTEM и името на файла. Ето един пример: <!DOCTYPE Library SYSTEM "MyLbrl.dtd"> Първото нещо, на което трябва да се обърне внимание, че служебните тагове НЯМАТ затварящи тагове. Служебния таг веднага ще го познаете по удивителната в началото, главните букви и липсата на затварящ таг. Но как тогава се обозначава край на дефиницията? Когато дефиницията не е във външен файл, то тя има вида

Код:
<!DOCTYPE Library [ 
...
]>



Именно между квадратните скоби се съдържа цялостната дефиниция, състояща се от серия служебни тагове. Определянето на елемент става чрез тага <!ELEMENT> който съдържа името на елемента и изброени в кръгли скоби възможните дъщерни елементи.

Ако създаваме дефиниция на кода

Код:
<skininfo>
<version>1.1</version>
<name>zygote</name>
<comment>.enjoy.check the skin configuration windows.enjoy.</comment>
<author>Michael S. , Mathieu P.</author>
<email>michael_spano@hotmail.com, nirvn@hotmail.com</email>
<homepage>http://www.breedart.org</homepage>
<screenshot>skinshot.png</screenshot>
</skininfo>



То тя ще изглежда така

Код:
<!DOCTYPE Skin [
<!ELEMENT skininfo (version, name, comment, author, email, homepage, screenshot)>
]>



Но освен главния елемент (root) трябва да определим дъщерните елементи. Те имат някакъв тип данни, които се съдържат между отварящия и затварящия таг. Обикновено данните са #PCDATA (повече за типовете данни ще научите малко по-нататък, и съответно нашата дефиниция ще се разшири до:

Код:
<!DOCTYPE Skin [
<!ELEMENT skininfo (version, name, comment, author, email, homepage, screenshot)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT comment (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT homepage (#PCDATA)>
<!ELEMENT screenshot (#PCDATA)>
]

 


Страници: «1 2 3 4 5 »

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com