Your SlideShare is downloading. ×
2013 04 01_modern_technologies_lecture_07
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

2013 04 01_modern_technologies_lecture_07

992
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
992
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
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