Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Листинг 1. Пример документа формата RSS 2.0

Типы данных схемы

Все типы данных схемы являются наследниками anyType. К ним относятся простые и сложные типы данных. Простые типы также можно разделить на встроенные примитивные типы и встроенные производные типы.

Пример:

<xs:element name="Book"> <xs:complexType> <xs:all> <xs:element name="Name" type="xs:string" /> <xs:element name="ID" type="xs:string"/> <xs:element name="Authors" type="authorType"/> <xs:element name="Price" type="priceType"/> </xs:all> </xs:complexType></xs:element> <xs:complexType name="authorType"> <xs:sequence> <xs:element name="Author" type="xs:string" maxOccurs="4"/> </xs:sequence></xs:complexType > <xs:complexType name="priceType"> <xs:choice> <xs:element name="dollars" type="xs:double" /> <xs:element name="pounds" type="xs:double" /> </xs:choice></xs:complexType >

 

XSLT

По существу, XSLT представляет собой систему объявлений событий, которые должны произойти при встрече в XML-документе определенных типов элементов. XSLT не компилируется; вместо этого XSLT совместно с входным XML-документом интерпретируется процессором таблиц стилей.

Его использование можно представить в виде математической функции: XSLT(XML) = выход.

 

Преобразования в Web-браузерах

Для просмотра в браузерах XML-документов требуется директива, подобная следующей, размещаемая в прологе документа сразу после тега <?xml version="1.0"?> в начале входного XML-документа.

<?xml-stylesheet type="application/xml" href="http://www.ibm/com/xslt/foo.xslt"?>

 

Корневой элемент

Корневым элементом или элементом верхнего уровня любого XSL-преобразования, под которым находятся все другие дочерние узлы, является элемент xsl:stylesheet или xsl:transform. Можно использовать любой из этих элементов, они выполняют одинаковую функцию. Можно записать эти элементы в следующем виде:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

или:

<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

В конце документа необходимо закрыть эти теги </xsl:stylesheet или </xsl:transform> соответственно.

Примеры применения шаблонов

Элемент xsl:template включает набор правил, применяемых к определенным элементам во входном XML-документе. Каждый элемент xsl:stylesheet или xsl:transform должен иметь хотя бы один элемент xsl:template. Богатые возможности XSLT-программирования обусловлены использованием различных шаблонов в качестве логических модулей, каждый из которых имеет собственное назначение. Элементы шаблона можно переключать с помощью атрибута match или с помощью непосредственного вызова в атрибуте name.

Использовать атрибут match довольно просто. При обнаружении шаблона, указанного значением атрибута match, выполняется правило. Например, для индикации каждого элемента dvd, обнаруженного в документе, строкой "Another DVD", можно использовать следующее:

<xsl:template match="dvd">Another DVD</xsl:template>

 

Вывод результата этого преобразования выглядит примерно так:

<?xml version="1.0" encoding="UTF-8"?> <p>Another DVD</p> <p>Another DVD</p> <p>Another DVD</p> <p>Another DVD</p>

 

Для каждого элемента dvd во входном документе имеет одно вхождение правила шаблона. Можно иметь шаблоны, соответствующие другим нужным элементам:

<xsl:template match="price"><xsl:value-of select="."/></xsl:template><xsl:template match="title"><xsl:value-of select="."/></xsl:template>

 

Значение атрибута select в теге <xsl:value-of/> в обоих случаях представляет собой шаблон, предоставляющий текстовое значение проверяемого элемента. Другой способ задания узла контекста заключается в применении тегов xsl:apply-templates и xsl:for-each.

Для вывода только значений элементов title и price необходимо правило шаблона:

<xsl:template match="dvd"> <p> <xsl:apply-templates select="title"/>- $<xsl:apply-templates select="price"/> </p></xsl:template>

 

Можно добавлять HTML-форматирование (тег <p>). Вывод должен выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8"?> <p>Terminator 2 - $19.95</p> <p>The Matrix - $12.95</p> <p>Life as a House - $15.95</p> <p>Raiders of the Lost Ark - $14.95</p>

 

Основы безопасности в XML

Средства обеспечения безопасности XML основываются на шифровании данных в документах XML. Шифрование можно применять к отдельному элементу, группе элементов или всему документу XML.

Во многих случаях вам может потребоваться шифрование только части документа XML, поскольку один и тот же документ может использоваться в разных приложениях. Вам необходимо обеспечить возможность обработки данных одними приложениями, предотвратив в то же время возможность чтения критически важных данных другими приложениями.

Зашифрованные данные хранятся в элементе EncryptedData.

 

Пример обеспечения безопасности в XML

Рассмотрим приведенный ниже документ XML, в котором содержится информация о деловой операции. Информация включает в себя:

  • Имя клиента
  • Продукт
  • Информацию о кредитной карте
  • Информацию об адресе
<TransactionInfo xmlns='http://www.whizlabs.com/trans'> <Customer>Peter John</Customer> <Products> <Product> <Name>XML Exam Simulator</Name> <Price>90</Price> </Product></Products> <Address> <Street>75 Bandeny Street</Street> <AptNo>765</AptNo> <City>Boston</City> <State>MA</State> <ZipCode>02134</ZipCode></Address> <CreditCard > <Name>Peter</Name> <Number>4019 2445 0277 5567</Number> <Provider>Example Bank</Provider> <Expiration> <month>02</month> <year>2005</year> </Expiration></CreditCard> </TransactionInfo>

 

Вам может понадобиться обрабатывать этот документ с помощью различных приложений, которым нет необходимости знать всю содержащуюся в нем информацию. Например, отделу доставки необходима только информация, содержащаяся в элементе Address, и нет нужды знать конфиденциальную информацию о кредитной карте. В этой ситуации можно зашифровать информацию о кредитной карте с помощью элемента EncryptedData. После этого элемент CreditCard заменяется элементом EncryptedData:

<EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element' xmlns='http://www.w3.org/2001/04/xmlenc#'> <CipherData> <CipherValue>A23B45C56</CipherValue> </CipherData></EncryptedData>

 

После изменения структура приведенного выше документа XML принимает следующий вид:

<TransactionInfo xmlns='http://www.whizlabs.com/trans'> <Customer>Peter John</Customer> <Products> <Product> <Name>XML Exam Simulator</Name> <Price>90</Price> </Product></Products> <Address> <Street>75 Bandeny Street</Street> <AptNo>765</AptNo> <City>Boston</City> <State>MA</State> <ZipCode>02134</ZipCode></Address> <EncryptedData Type='http://www.w3.org/2001/04/xmlenc#Element' xmlns='http://www.w3.org/2001/04/xmlenc#'> <CipherData> <CipherValue>A23B45C56</CipherValue> </CipherData></EncryptedData> </TransactionInfo>

RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т. п. Информация из различных источников, представленная в формате RSS, может быть собрана, обработана и представлена пользователю в удобном для него виде специальными программами-агрегаторами.

 

Допустим, на вашем сайте есть материалы, которыми вы хотите поделиться с целевой аудиторией. Думаете, существенное число пользователей, узнавшее о вашем сайте и материалах, размещённых на нём, будет возвращаться каждый день, чтобы проверить обновления? Вероятно, нет. Посещаете ли вы для проверки обновлений сайты, наиболее часто используемые вами, каждый день? Опять же, нет. Вот здесь и приходит на помощь RSS.

Для ваших пользователей RSS станет существенной выгодой, особенно если они оценивают мнения или новости, размещенные на вашем сайте. Даже не посещая часто ваш сайт, они всегда будут знать, что вы обновили старые материалы сайта или добавили новые. Это позволит пользователям экономить время и усилия и одновременно не пропустить обновления!

Создание содержания не проблема, в случае если на вашем сайте вы используете RSS-ленты для обеспечения агрегирования содержания. Путём извлечения данных из ленты можно добиться наполнения сайта большим числом различных материалов быстро.

 

В разных версиях аббревиатура RSS имела разные расшифровки:

· Rich Site Summary (RSS 0.9x) — обогащённая сводка сайта;

· RDF Site Summary (RSS 0.9 и 1.0) — сводка сайта с применением инфраструктуры описания ресурсов;

· Really Simple Syndication (RSS 2.x) — очень простое приобретение информации.

 

RSS ленты читаются с помощью программ-агрегаторов или сайтов-агрегаторов,то же, что и программа-агрегатор, только в режиме On-Line. Плюс в том, что не привязывает вас к определенному компьютеру.

 

Если вы видите на сайте иконку, изображенную на рисунке 1, можете быть уверены: этот сайт имеет RSS-ленту. Эта иконка является стандартом де-факто, обозначающим возможность использования RSS для просмотра обновлений на сайте. Дуговые линии означают радиоволны, символ широковещательной природы RSS-ленты.


Рисунок 1. Стандартная иконка RSS

 

 

RSS-каналы

Что представляют собой файлы RSS-каналов?

Файлы RSS-каналов представляют собой метаданные. Как правило, файл RSS-канала содержит четыре элемента основного типа: канал, изображение, позиции и текстовый ввод. Эти элементы легко идентифицируются и кодируются (см. пример на листинге 1). В примере элемента файла RSS 0.91 на листинге 1 содержится три четко выделенных части: название, ссылка и описание.


Листинг 1. Пример элемента в RSS-канале

<item> <title>Mozilla Dispenses with Old, Proprietary DOM</title> <link>http://www.mozillazine.org/talkback.html?article=604</link> <description>The Mozilla team has decided to forgo backwards compatibility with Netscape's proprietary DOM.</description> </item>

 

В заголовке публикуются коллекции в результате объединения файлов RSS. HTML, как правило, используется для отображения указанного названия в виде заголовка. Название также обычно служит в кaчестве ссылки, используя URL-адрес, указанный в элементе link. Наконец, описание обычно представлено в виде краткого содержания статьи, расположенной под заголовком.

 

Создание файлов RSS-каналов

RSS-канал представляет собой XML-файл. Поэтому все RSS-документы начинаются с объявления XML 1.0, затем идет объявление типа документа RSS (см. листинг 2).


Листинг 2. XML-объявление

<?xml version="1.0"?><!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd"><rss version="0.91">

 

В первой строке объявляется XML-документ. Во второй строке находится объявление DTD, определяющее, что данный XML-файл основан на определении типа документа (DTD) RSS 0.91 компании Netscape. Наконец, начало контента файла RSS-канала отмечается корневым элементом, все содержимое находится между тегами <rss version "0.91"> и </rss>.

 

Четыре основных раздела файла RSS-канала

Четыре основных раздела файла RSS-канала находятся после корневого элемента. К ним относятся разделы channel, image, item и text input. На практике элементы channel и item необходимы для любого рабочего файла RSS-канала, элементы image и text input являются дополнительными.

Раздел channel

Элемент channel содержит метаданные, описывающие собственно канал: что он собой представляет, и кто его создал. Раздел channel является необходимым элементом и включает имя канала, его описание, язык и URL-адрес. Как правило, URL-адрес используется для указания на источник информации канала.

В листинге 3 показано начало элемента channel. В данной части элемента channel определяется канал и приводятся сведения о канале.


Листинг 3. Элемент channel

<channel> <title>MozillaZine</title> <link>http://www.mozillazine.org</link> <description>Your source for Mozilla news, advocacy, interviews, builds, and more! </description> <language>en-us</language></channel>

 

Элемент channel содержит остальные теги канала, описывающие канал и позволяющие отображать его содержимое в HTML. Тег title можно рассматривать как ссылку на заголовок со следующим описанием. Определение языка канала позволяет накопителям фильтровать новостные каналы и предоставляет программе визуализации информацию, необходимую для правильного отображения языка.

Тег </channnel> размещается после всех элементов канала и используется как закрывающий тег. RSS соответствует спецификациям XML, поэтому раздел element должен быть оформлен правильно; для него необходимо использовать закрывающий тег.

Раздел image

Элемент image не является обязательным и обычно используется для включения логотипа поставщика канала. Размер изображения по умолчанию составляет 88 пикселей в ширину и 31 пиксел в высоту, хотя логотип можно увеличить до размера 144 на 400 пикселей. Далее показан пример элемента image:


Листинг 4. Элемент image

<image> <title>MozillaZine</title> <url>http://www.mozillazine.org/image/mynetscape88.gif</url> <link>http://www.mozillazine.org</link> <width>88</width> <height>31</height></image>

 

Теги элемента title, URL, link, width и height позволяют средствам визуализации преобразовать файл в HTML-формат. Тег title обычно используется для текста изображения ALT. По возможности не увеличивайте изображение больше размера 88 x 31 пиксел, потому что многие средства визуализации преобразуют каналы в таблицы фиксированной ширины менее 100 пиксел. Большие графические изображения могут привести к нежелательному разрыву таблиц, или изображение не будет показываться вообще.

Элемент item

Элемент item является самым важным элементом канала и обычно составляет динамическую часть RSS-канала. Если элементы channel, image и text input определяют идентичность канала и не изменяются в течение длительных периодов времени, элементы канала item отображаются как новостные заголовки, ценность канала зависит от их частого изменения. Далее показан пример элемента канала item:


Листинг 5. Элемент item

<item> <title>Java2 in Navigator 5?</title> <link>http://www.mozillazine.org/talkback.html?article=607</link> <description>Will Java2 be an integrated part of Navigator 5? Read more about it in this discussion...</description></item>

 

Для канала можно использовать до 15 элементов item. Это разумное ограничение, так как каналы в основном используются для распространения последнего Web-контента. Длина названий не должна превышать 100 символов, длина описаний - 500 символов. Название элемента item обычно отображается как заголовок со ссылкой на всю статью, URL-адрес которой определяется тегом link. Описание элемента item обычно используется для краткого обзора содержимого статьи или для комментария к статье.

Практически вся прелесть RSS-формата заключается в элементе item. Как видно на примере выше, разработчики легко могут использовать элементы item для определения, а пользователи - для чтения.

Элемент text input

Область text input является дополнительным элементом, для канала можно использовать только один элемент. Обычно элемент text input отображается в виде HTML-формы и позволяет пользователям реагировать на канал. Эту функцию можно использовать для разрешения пользователям подписываться на информационный бюллетень или выполнить поиск по сайту. Далее показан пример элемента text input:


Листинг 6. Элемент text input

<textinput> <title>Send</title> <description>Comments about MozillaZine?</description> <name>responseText</name> <link>http://www.mozillazine.org/cgi-bin/sampleonly.cgi</link></textinput>

 

Тег title обычно отображается в виде текста на кнопке отправки формы, тег description - в виде текста до или над полем ввода. Тег name элемента text input отправляется вместе с содержимым текстового поля при нажатии кнопки Submit.

Это четыре основных элемента файла RSS-канала. После добавления элементов image, item и text input на забудьте добавить закрывающий тег </channel> и тег закрытия RSS-канала </rss>.

Рассматриваемая спецификация RSS 1.0 включает модули, позволяющие расширить RSS-канал для поставки дополнительной информации без необходимости переписывать спецификацию. Например, можно написать модуль для добавления к каналу мультимедийных данных для клиентов с широкополосным доступом, тогда как для обычных клиентов по-прежнему будут отображаться заголовки и описания. Можно изучить модули подробней и использовать их преимущества после принятия спецификации 1.0.

 

Приложения RSS

Существует множество приложений, большинство которых бесплатны и имеют возможность чтения и агрегирования RSS-лент. Возможность агрегирования позволяет пользователям проводить дальнейшую детализацию получаемых новостей по их количеству и природе.

Стандартный формат RSS 2.0

Стандарт RSS описывает и содержит наполнение лент, которые могут быть созданы из различных источников для определения интернет-документов и создания в очень общем смысле списков ссылок и их описаний.

Листинг 1. Пример документа формата RSS 2.0

<?xml version="1.0"?><rss version="2.0"> <channel> <title>Liftoff News</title> <link>http://liftoff.msfc.nasa.gov/</link> <description>Liftoff to Space Exploration.</description> <language>en-us</language> <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate> <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <generator>Weblog Editor 2.0</generator> <managingEditor>[email protected]</managingEditor> <webMaster>[email protected]</webMaster> <item> <title>Star City</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link> <description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's Star City.</description> <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid> </item> <item> <title>Space Exploration</title> <link>http://liftoff.msfc.nasa.gov/</link> <description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a partial eclipse of the Sun on Saturday, May 31st.</description> <pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid> </item> <item> <title>The Engine That Does More</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link> <description>Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly. The proposed VASIMR engine would do that.</description> <pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid> </item> <item> <title>Astronauts' Dirty Laundry</title> <link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link> <description>Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them. Instead, astronauts have other options.</description> <pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate> <guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid> </item> </channel></rss>

 

Первый порожденный объект XML-форматированного документа - определение <channel>. Канал является простой собственной лентой ассоциированной с ним информации. Множество RSS-лент имеет только один канал, но вы можете использовать несколько, возможно, для этого вам придётся использовать разделительный фильтр. Объекты title, link и description требуются канальным объектом. Они задают базовые описания ленты. Дополнительные объекты: language, copyright, managingEditor, webMaster, pubDate, lastBuildDate, category, generator, docs, cloud, ttl, image, rating, textInput, skipHours и skipDays.

Канал может содержать бесконечное количество элементов. Все элементы элемента ITEM необязательны, однако для успешной проверки правильности требуется хотя бы один заголовок или описание.

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...