2013 04 01_modern_technologies_lecture_07

  • 971 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
971
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
6
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Лекция 7. Язык XMLЛекция 7. Язык XML Александр Смаль CS центр 1 апреля 2013 Санкт-Петербург www.compscicenter.ru 1/18
  • 2. Лекция 7. Язык XML SGML• 1969 году в IBM разработан язык GML (Generalized Markup Language).• В 80-е на основе GML разрабатывается язык SGML (Standard Generalized Markup Language) — стандартный обобщённый язык разметки, метаязык, на котором можно определять язык разметки для документов.• HTML и XML произошли от SGML. HTML — это приложение SGML, а XML — это подмножество SGML, разработанное для упрощения процесса машинного разбора документа.• Другими приложениями SGML являются SGML Docbook (документирование) и «Z Format» (типография и документирование). www.compscicenter.ru 2/18
  • 3. Лекция 7. Язык XML Структура SGML• SGML-декларация — определяет, какие символы и ограничители могут появляться в приложении;• Document Type Definition — определяет синтаксис конструкций разметки. DTD может включать дополнительные определения, такие, как символьные ссылки-мнемоники;• Спецификация семантики, относится к разметке — также даёт ограничения синтаксиса, которые не могут быть выражены внутри DTD;• Содержимое SGML-документа — по крайней мере, должен быть корневой элемент. www.compscicenter.ru 3/18
  • 4. Лекция 7. Язык XML ПримерыDTD:<! ELEMENT lines ( line *)<! ELEMENT line O - (# PCDATA ) ><! ENTITY line - tagc ‘‘ </ line > ’ ’ ><! SHORTREF one - line ‘ ‘&# RE ;&# RS ; ’ ’ line - tagc ><! USEMAP one - line line >SGML:< lines > < lines >first line < line > first line </ line >second line < line > second line </ line ></ lines > </ lines > www.compscicenter.ru 4/18
  • 5. Лекция 7. Язык XML XML• XML (eXtensible Markup Language) — расширяемый язык разметки, рекомендованный Консорциумом Всемирной паутины (W3C).• XML разрабатывался как • язык с простым формальным синтаксисом, • удобный для создания и обработки документов программами, • одновременно удобный для чтения и создания документов человеком, • нацеленный на использование в Интернете. www.compscicenter.ru 5/18
  • 6. Лекция 7. Язык XML Устройство XML• Определены следующие замены < & lt ; > & gt ; & & amp ; ’ & apos ; " & quot ;• Секция CDATA не является логической единицей текста. Внутри секции могут находиться любые символьные данные без замен. < ![ CDATA [ any text < > & ]] >. www.compscicenter.ru 6/18
  • 7. Лекция 7. Язык XML Структура• Пролог <? xml version = " 1.1 " encoding = ’UTF -8 ’ ? >• Комментарии: <!-- comments -->• Элемент — структурная единица. Границы элементов представлены начальным и конечным тегами. < element attr1 = " value1 " attr2 = " value2 " > ... contents ... </ element > < element attr1 = " value2 " attr2 = " value4 " / >• Обязательно наличие корневого элемента. www.compscicenter.ru 7/18
  • 8. Лекция 7. Язык XML DTDСуществует два основных способа описания структуры XML: DTD и XSD. DTD(Document Type Definition) — аналогично описанию SGML.<! ELEMENT people_list ( person *) ><! ELEMENT person ( name , birthdate ? , gender ? , s o c i a l s e c u r i t y n u m b e r ?) ><! ELEMENT name (# PCDATA ) ><! ELEMENT birthdate (# PCDATA ) ><! ELEMENT gender (# PCDATA ) ><! ELEMENT s o c i a l s e c u r i t y n u m b e r (# PCDATA ) ><? xml version = " 1.0 " encoding = " UTF -8 " ? ><! DOCTYPE people_list SYSTEM " example . dtd " >< people_list > < person > < name > Fred Bloggs </ name > < birthdate > 27 / 11 / 2008 </ birthdate > < gender > Male </ gender > < s o c i a l s e c u r i t y n u m b e r > 1234567890 </ s o c i a l s e c u r i t y n u m b e r > </ person ></ people_list > www.compscicenter.ru 8/18
  • 9. Лекция 7. Язык XML XSDXML Schema — язык описания структуры XML-документа. Спецификация XMLSchema является рекомендацией W3C.<? xml version = " 1.0 " encoding = " utf -8 " ? >< xs:schema xmlns:xs = " http: / / www . w3 . org / 2001 / XMLSchema " > < xs:element name = " country " type = " country " / > < xs:com plexTy pe name = " country " > < xs:sequence > < xs:element name = " name " type = " xs:string " / > < xs:element name = " population " type = " xs:decimal " / > </ xs:sequence > </ xs:c omplex Type ></ xs:schema ><? xml version = " 1.0 " encoding = " utf -8 " ? >< country > < name > France </ name > < population > 59.7 </ population ></ country > www.compscicenter.ru 9/18
  • 10. Лекция 7. Язык XML XSLTXSLT (eXtensible Stylesheet Language Transformations) — языкпреобразования XML-документов. Спецификация XSLT входитв состав XSL и является рекомендацией W3C.<? xml version = " 1.0 " ? >< xsl:st yleshe et xmlns:xsl = " http: / / www . w3 . org / 1999 / XSL / Transform " version = " 1.0 " > < xsl:output method = " xml " indent = " yes " / > < xsl:template match = " persons " > < transform > < xsl:apply - templates / > </ transform > </ xsl:template > < xsl:template match = " person " > < record > < xsl:apply - templates select = " @ *|* " / > </ record > </ xsl:template > ... < xsl:template match = " surname " / ></ xsl:s tylesh eet > www.compscicenter.ru 10/18
  • 11. Лекция 7. Язык XML XPathXPath (XML Path Language) — язык запросов к элементамXML-документа.< html > < body > < div > AAAA < span > BBBB </ span > </ div > < div > CCCC </ div > < div > DDDD < span class = " text " > EEEE </ span > < span class = " text " > FFFF </ span > < span > GGGG </ span > </ div > </ body ></ html >Запрос /html/body/*/span[@class] соответствует строкам сEEEE и FFFF. www.compscicenter.ru 11/18
  • 12. Лекция 7. Язык XML XQueryXQuery — язык запросов, разработанный для обработкиданных в формате XML. XQuery использует XML как своюмодель данных.< html > < head / > < body > { for $ act in doc ( " hamlet . xml " ) / / ACT let $ speakers : = distinct - values ($ act / / SPEAKER ) return < span > < h1 >{ $ act / TITLE / text () } </ h1 > < ul > { for $ speaker in $ speakers return < li >{ $ speaker } </ li > } </ ul > </ span > } </ body ></ html > www.compscicenter.ru 12/18
  • 13. Лекция 7. Язык XML Способы разбора XMLДва основных подхода: • DOM (Document Object Model) • Естественное соответствие древовидной структуры документа и его объектной модели. • Естественно представлять • Необходимо прочитать весь документ в память. • SAX (Simple API for XML) • Событийный подход к разбору XML. • Можно обрабатывать только некоторую часть документа. • Позволяет не хранить весь документ в памяти. www.compscicenter.ru 13/18
  • 14. Лекция 7. Язык XML Языки основанные на XML• XHTML — версия HTML, отвечающая синтаксическим требованиям XML.• SOAP — протокол передачи данных, использующий для сообщений формат XML.• FB2 — формат описания книг, базирующийся на XML.• WSDL — формат описания сервисов.• RSS и Atom — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах.• OpenDocument Format, Office Open XML — форматы файлов для офисных документов (Open Office и MS Office). www.compscicenter.ru 14/18
  • 15. Лекция 7. Язык XML Альтернативы XML: YAMLYAML (YAML Ain’t Markup Language, Yet Another MarkupLanguage) — язык разметки с облегчёнными синтаксисом. • краток и понятен; • очень выразительный и расширяемый; • допускает простой потоковый интерфейс; • использует структуры данных, родные для языков программирования; • легко реализуется, возможно, слишком легко; • использует цельную модель данных. Нет исключений — нет беспорядка. www.compscicenter.ru 15/18
  • 16. Лекция 7. Язык XML Альтернативы XML: Пример YAMLreceipt: Oz - Ware Purchase Invoicedate: 2007 -08 -06customer: given: Dorothy family: Galeitems: - part_no: A4786 descrip: Water Bucket ( Filled ) price: 1.47 quantity: 4 - part_no: E1628 descrip: High Heeled " Ruby " Slippers size: 8 price: 100.27 quantity: 1 www.compscicenter.ru 16/18
  • 17. Лекция 7. Язык XML Альтернативы XML: JSONJSON (англ. JavaScript Object Notation) — текстовый форматобмена данными, основанный на JavaScript.JSON является подмножеством языка YAML (спецификацияYAML 1.2), т.е. «любой файл в формате JSON являетсякорректным файлом в формате YAML».{ " firstName " : " John " , " lastName " : " Smith " , " age " : 25 , " address " : { " streetAddress " : " 21 2 nd Street " , " city " : " New York " , " state " : " NY " , " postalCode " : 10021 } , " phoneNumbers " : [ { " type " : " home " , " number " : " 212 555 -1234 " } , { " type " : " fax " , " number " : " 646 555 -4567 " } ]} www.compscicenter.ru 17/18
  • 18. Лекция 7. Язык XMLСпасибо за внимание! www.compscicenter.ru 18/18