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

Въведение в XML

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



Всъщност и дъщерните елементи, които може да съдържа един таг, са тип данни, които той може да съдържа. Типа данни може да бъде:

Списък на дъщерни тагове, затворен в кръгли скоби
Ключовата дума EMPTY, указващ таг, който не съдържа нищо (самозатварящ се таг)
Ключовата дума ANY, дефиниращ таг, който може да съдържа произволен тип данни (дъщерни тагове, текст и т.н.)
Тип #PCDATA, затворен в кръгли скоби
При дефинирането на поредица дъщерни тагове, те се разделят със запетая - това определя не само какви са допустимите тагове, но и реда, в който те трябва да се появят. Други специални символи, които можете да използвате след името на дъщерен таг са:
? - указва, че елемента трябва да се съдържа само веднъж или нито веднъж
* - указва, че елемента може да се съдържа толкова пъти, колкото автора иска
+ - указва, че елемента трябва да се съдържа поне веднъж, но е възможно множество повторения Ако не е използван нито един от тези символи, то елемента трябва да присъства само един път. Ето един пример за използването на тези символи:

Код:
<!ELEMENT skininfo (version, name, comment?, author+, email*, homepage*, screenshot)>



Тази декларация определя следното:
Таговете , и трябва да присъстват, при това само по веднъж
Възможно е да има таг <comment> но не повече от веднъж
Допустимо е неограничено количество тагове , но трябва да има поне веднъж
За таговете <email> и <homepage> няма ограничения


Определяне на атрибути

Документа освен от тагове се състои от атрибути. Дефиницията на атрибутите на даден таг става с помощта на тага <!--ATTLIST-->

Синтаксиса на този таг е <!ATTLIST ИмеНаТаг ИмеНаАтрибут ТипДанни СтойностПоПодразбиране> В един и същи таг <!ATTLIST> можете (и тряба) да дефинирате неограничен брой атрибути на даден таг, като за всеки включвате тип данни и стойност по подразбиране.

Типовете данни за атрибутите са:
  • CDATA - в атрибута може да се използва само символен низ (това е стандартния тип)
  • ENTITY - атрибута определя предварително деклариран двоичен (т.е. не-текстов) външен файл
  • ENTITIES е същото като ENTITY, но позволява множество стойности, разделени със запетая
  • ID - стойността на атрибута трябва да е уникален идентификатор.
  • NMTOKEN - стойността на атрибута може да бъде произволна комбинация от числа, букви, точки, тирета, двуеточия и underscore (" _ ")
  • NOTATION - атрибута трябва да указва нотация, декларирана в документа. Повече за нотацията ще научите по-нататък

Последния вариант е т.нар "Енумерация" - т.е. атрибута трябва да съдържа една от няколко възможни стойности. Те се определят, като се записват във кръгли скоби, разделени от символа |

Пример за енумерация е следния код:

<!ATTLIST File archiveType (Zip|Rar|Ace|Cab|None) "None">

Този код декларира атрибут archiveType на тага File с възможни стойности "Zip", "Rar", "Ace", "Cab" или "None", като "None" е стойност по подразбиране

Възможните са следните варианти за стойност по подразбиране:
#REQUIRED означава, че атрибута е задължителен
#IMPLIED означава, че атрибута е оптионален и се игнорира, ако няма дадена стойност
#FIXED означава, че атрибута трябва да име една конкретна стойност, определена от стойността, следваща непосредствено директивата #FIXED и дори и ако атрибута не е включен, се използва тази стойност

Полседния вариант е просто да напишете стойност, която да се използва като стойност по подразбиране.

Използване на двуични файлове

В XML съществува таг, който позволява наименоване на предварително дефинирана информация. Т.е. можете да определите name като "John" и навсякъде, където правите обръщения към &name; това ще бъде заменено с "John". Предимството на този метод е, че можете да смените името само на едно място и това ще се отрази на целия документ. Още по-голямо предимство е, че можете да определите външен двуичен файл и да го използвате в XML докуемта. Тагът, с който се осъществява всичко това е <!ENTITY>. Разбира се, синтаксиса му е различен, когато става въпрос за текст или за външен файл. Разликата е същата, каквато и в декларацията на DTD и файл, който определя структурата на документа. Ако искате да декларирате символен низ, синтаксиса е

Код:
<!ENTITY name "John>



След това за да вкарате този низ в документа, трябва да използвате името, предшествано от амепрсанд (&) и завършващо с точка и запетая - &name; Когато декларира външен файл обаче, след името на ресурса, чрез което ще извършвате обръщения към него, трябва да включите ключовата дума SYSTEM. Също така трябва да декларирате типа на този файл и кое приложение ще се използва за отварянето му. Ето един пример:

Код:
<!ENTITY image SYSTEM "image.gif" NDATA GIF>



Важно е да отбележим, че тука ключови думи се явяват SYSTEM и NDATA, докато GIF е само идентификатор. Т.е. след NDATA може да име произволен идентификатор, но този идентификатор също трябва да бъде деклариран. Това става чрез тага <!NOTATION>:

Код:
<!NOTATION GIF SYSTEM "Iexplore.exe">



Този код декларира, че двоични файлове, за които NDATA е определена като GIF, трябва да се отварят с външното приложение "Iexplore.exe"
 


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

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


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