1 / 27

НБУ

CSCB621 - Програмиране с XML Николай Янев. НБУ. DTD. CSCB621 - Програмиране с XML. Изисквания към XML приложенията: 1. Да описват структурата на документа; 2. Да предават структурата на документа на други приложения и хора; 3. Да проверяват за наличие на задължителни елементи;

tanya-le
Download Presentation

НБУ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSCB621 - Програмиране с XML Николай Янев НБУ

  2. DTD CSCB621 - Програмиране с XML

  3. Изисквания към XML приложенията: 1. Да описват структурата на документа; 2. Да предават структурата на документа на други приложения и хора; 3. Да проверяват за наличие на задължителни елементи; 4. Да проверяват за включване на не позволени елементи; 5. Да задават стойности за дървовидната структура, съдържание на елементи и атрибути; 6. Да осигуряват стойност по подразбиране на неопределени атрибути; 7. Да използват стандартни формати за документа и структурата от данни. CSCB621 - Програмиране с XML

  4. Document Type Definitions (DTD) служат за дефиниране на правила, важни при обмяна, обработка и показване на XML документи в по-широко обкръжение. Те описват правилата за структуриране на документа, включените елементи, възможните типове данни и стойности по подразбиране. CSCB621 - Програмиране с XML

  5. DTD дефинициите могат да се вграждат в XML документ, съдържащ данни (вътрешна DTD дефиниция) , да съществуват като отделен елемент – обикновено файл с .dtd разширение (външна DTD дефиниция) или комбинирано. Когато XML документа използва код, намиращ се във външна DTD дефиниция, атрибута standalone=“no” (в XML декларацията). DTD декларациите от вътрешното подмножество имат приоритет пред тези от външното. CSCB621 - Програмиране с XML

  6. DTD декларация:: <!DOCTYPE document_element source location1 location2 [internal subset of DTD ]> В един документ може да има само една DOCTYPE декларация. DOCTYPE декларацията съдържа: - стандартни разделители за тагове (“<” и “>”); - удивителен знак (“!”) указващ специална XML декларация; - име на документния елемент (document_element); - source ключова дума (PUBLIC или SYSTEM); - един или два пътя към DTD дефиниция; - допълнителни декларации, отнасящи се за вътрешната част на DTD. CSCB621 - Програмиране с XML

  7. Източник на DTD дефиниция: SYSTEM – местоположението се указва чрез URL PUBLIC - приложението е длъжно да си осигури DTD. Много често PUBLIC се използва с вторичен (SYSTEM) път, като така се осигурява резервен път, ако PUBLIC пътят не бъде открит: <!DOCTYPE BookCatalog PUBLIC “Publishing/BookCatalog” “http://www.wrox.com/DTDs/BookCatalog.dtd”> CSCB621 - Програмиране с XML

  8. DTD форматиране В DTD декларациите се използват четири ключови думи: ELEMENT – декларира име на XML елементен тип и неговите възможни поделементи (наследници)þ ATTLIST – декларира имена на XML елементни атрибути ENTITY – декларира специални знакови препратки, текстови макроси, както и друго повтарящо се съдържание от външни източници NATATION – декларира външно не-XML съдържание и външни приложения, които обработват това съдържание CSCB621 - Програмиране с XML

  9. Декларация на елементен тип <!ELEMENT name category> <!ELEMENT name (content_model)> CSCB621 - Програмиране с XML

  10. Категории за съдържание на елемент: ANY - елементния тип може да съдържа всякакви добре конструирани XML данни EMPTY - елементния тип не може да съдържа нито текст, нито дъщерни елементи – разрешени са само елементни атрибути element - елементния тип може да съдържа само дъщерни елементи mixed - елементния тип може да съдържа текст и|или дъщерни елементи PCDATA – елементния тип може да съдържа само текст CSCB621 - Програмиране с XML

  11. Допуска се и смесено съдържание. <!ELEMENT name (#PCDATA, element1, element2)> #PCDATA трябва да е първият елемент в модела на съдържание --------------------------------------------- <name>text text <element1>text text </element1><element2>text text</element2> text text</name> CSCB621 - Програмиране с XML

  12. Има два оператора за списък на модела на съдържание: , - последователност – дъщерните елементи трябва да се появят по зададения ред <!ELEMENT PersonName (FirstName, MiddleName, LastName)> | - избор – само един от няколко дъщерни елемента е разрешен <!ELEMENT PersonName ((Mr | Ms | Dr | Rev),FirstName, MiddleName, LastName)> CSCB621 - Програмиране с XML

  13. Мощност Операторите за мощност дефинират броя на дъщерните елементи, които могат да се появяват в един модел на съдържание. [никакъв] – липсата на оператор за мощност указва, че е разрешена само една единствена инстанция на дъщерния елемент ? - нула или един дъщерен елемент * - нула или повече дъщерни елементи + - един или повече дъщерни елементи CSCB621 - Програмиране с XML

  14. Декларация на атрибути <!ATTLIST elementName attrName attrType attrDefault defaultValue> CSCB621 - Програмиране с XML

  15. Типове атрибути: CDATA – знакови данни (прост текстов низ)‏ изброима стойност – стойността на атрибута трябва да бъде една от поредицата, която е дефинирана явно в DTD декларацията ID – стойността на атрибута е уникалния идентификатор за тази инстанция на елемента. Тя трябва да представлява текстов низ, който се съобразява с всички XML правила за именуване IDREF - препратка към елемента с атрибут ID, чиято стойност е същата като на IDREF IDREFS - списък с IDREF стойности, разделени с интервал CSCB621 - Програмиране с XML

  16. NMTOKEN – именна лексема (name token) – текстов низ, който се съобразява с всички XML правила за именуване, с изключение на това, че първият знак от името може да бъде всеки валиден знак за име. По този начин се ограничава синтаксиса за дадена атрибутна стойност, но остава възможност за използване на не определени стойности. NMTOKENS - списък с NMTOKEN стойности, разделени с интервал ENTITY – името на предварително дефиниран обект ENTITIES – списък с ENTITY имена, разделени с интервал NOTATION – стойността на атрибута трябва да бъде нотационен тип, които е деклариран явно някъде другаде в DTD дефиницията CSCB621 - Програмиране с XML

  17. Атрибутни подразбирания: #REQUIRED - атрибута трябва да присъства във всяка инстанция на елемента #IMPLIED – атрибута не е задължителен #FIXED (плюс подразбираща се стойност) - атрибута може да присъства или не в документа. Ако присъства – трябва да има стойност съвпадаща с тази от ATTLIST декларацията CSCB621 - Програмиране с XML

  18. Парсвани обекти Тези обекти могат д а включват произволно добре структурирано съдържание, което е „текст за заместване“. Този текст може да се счита за част от документа, в който се посочва – все едно че е бил навсякъде, където е посочен: <!ENTITY TheName „The replacement text“> .... &TheName CSCB621 - Програмиране с XML

  19. Не парсвания обект е винаги външен обект. Като такива тяхната декларация винаги ще сочи към външно място (PUBLIC или SYSTEM) и винаги трябва да допълва мястото с ключовата дума NDATA и името на типа на свързаната нотация. Няма ограничения върху съдържанието на непарсвания обект. CSCB621 - Програмиране с XML

  20. <!ENTITY name SYSTEM “..location..“ NDATA notation_type> <!ENTITY name PUBLIC “..location1..“ “..location12.“ NDATA notation_type> всяко name трябва да съвпада с името на декларация <!NOTATION>, за да се счита документа за валиден. ................................ <!ENTITY logo SYSTEM “http://www.MySite.com/Images/Logo.png.“ NDATA png> CSCB621 - Програмиране с XML

  21. Не XML данни (нотации)‏ Нотацията се използва от XML приложението като подсказка за обработка на непарсван обект или някакви други не XML данни. XML парсерът трябва само да осигури на приложението имената на непарсвания обект и свързаната с него декларация на нотация. CSCB621 - Програмиране с XML

  22. <!NOTATION name SYSTEM “..location..“> <!NOTATION name PUBLIC “..location1..“ “..location2..“> Всички имена на нотации name, които се използват в даден документ, трябва да се декларират с <!NOTATION> <!NOTATION png SYSTEM “http://www.MySite.com/Programs/PNG_Viewer.exe“> CSCB621 - Програмиране с XML

  23. Атрибутен тип NOTATION Примерно описание на HTML тага<img> <!ELEMENT img EMPTY> <!ATTLIST img src CDATA #REQUIRED type NOTATION (png | gif | jpg) #IMPLIED > CSCB621 - Програмиране с XML

  24. Атрибутни типове ENTITY и ENTITIES Използват се за да се разрешава на една препратка към непарсван външен обект да се появява в документа. Подобно на IDREF/IDREFS тези два атрибута осигуряват единственото и множественото число на един и същ основен атрибутен тип. Стойността на атрибута винаги трябва да бъде валидно XML име, а формата за множествено число използва списък от имена, разделени със запетаи. CSCB621 - Програмиране с XML

  25. Ограничения на DTD дефинициите: - DTD дефинициите не са разширяеми (за разлика от XML)‏ - Само една DTD дефиниция може да бъде асоциирана с даден документ - DTD дефинициите не работят добре с XML пространствата от имена - Много слабо типизиране на данните - Ограничени описания за моделите на съдържание - Липса на обектно-ориентирано наследяване на обекти - Един документ може да предефинира игнорира външната DTD дефиниция посредством вътрешно DTD подмножество - Не-XML синтаксис - Няма DOM поддръжка - Сравнително малко, стари, скъпи инструменти CSCB621 - Програмиране с XML

  26. STG Validator http://www.stg.brown.edu/service/xmlvalid/ CSCB621 - Програмиране с XML

  27. Благодаря за вниманието! CSCB621 - Програмиране с XML

More Related