Newcomposers.ru

IT Мир
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как вставить xml в html

Связывание данных: отображение XML-документа на Web-странице

Понятие о связывании данных

Метод связывания данных сводится к установке связи XML-документа с HTML-страницей, а также сцеплению элементов HTML с XML-элементами. В результате HTML-элементы автоматически отображают содержимое XML-элементов, с которыми они сцеплены. В этом случае при открытии HTML-страницы встроенный в Internet Explorer XML-процессор синтаксически анализирует XML-документ. При этом Internet Explorer создаёт программный объект, который носит название «Объект исходных данных» (Data Source Object, DSO). Объект DSO хранит данные XML и обеспечивает доступ к ним. DSO позволяет осуществлять доступ и манипулирование XML-данными посредством ряда методов, свойств и событий.

Если вы открываете XML-документ описанным выше способом (через HTML-страницу), Internet Explorer проверяет, является ли документ корректно сформированным, а также, если документ включает объявление типа документа — является ли документ валидным. Если документ содержит ошибку (не является валидным), Internet Explorer просто не будет отображать данные XML, не выводя сообщение об ошибке. Если документ содержит DTD (объявление типа документа), вы должны исчерпывающе описать все возможные элементы (спецификацию содержимого «ANY» использовать нельзя).

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

Основные шаги при связывании данных:


    Установка связи XML-документа с HTML-страницей, на которой вы хотите отобразить данные XML. Этот шаг реализуется включением HTML-элемента с именем XML в HTML-страницу:

Сцепление HTML-элементов с XML-элементами, например:

HTML-элемент с именем XML называется фрагментом данных. Весь текст XML-документа в принципе может быть помещён между начальным и конечным тэгами XML:

Однако согласно идеологии XML собственно данные (XML-документ) должны храниться отдельно от информации по их форматированию и обработке. Поэтому как правило HTML-элемент с именем XML (фрагмент данных) остаётся пустым и содержит только идентификатор объекта DSO и URL XML-документа, который находится в отдельном файле. Идентификатор фрагмента данных (атрибут ID) используется для доступа к XML-документу с HTML-страницы и должен быть уникальным.

Сцепление HTML-элементов с XML-элементами осуществляется двумя основными способами:

  • Табличное сцепление. Сцепление HTML-элемента TABLE с данными XML, так что в таблице автоматически отображается весь набор записей, принадлежащий XML-документу.
  • Сцепление по отдельным записям. Сцепление нетабличных HTML-элементов (например, элементов SPAN) с XML-элементами таким образом, что за один раз отображается только одна запись.

Табличное сцепление данных

При табличном сцеплении Internet Explorer берёт на себя бóльшую часть работы. Вам не нужно писать сценарии. Только если вы выбрали режим пролистывания, вам потребуется включить несколько вызовов простых функций. Кроме того, вы можете использовать вложенные HTML-таблицы для отображения XML-документа, содержащего иерархический набор записей.

Если данные XML-документа организованы в виде простого набора записей, т.е. если корневой элемент содержит множество элементов («записей»), каждый из которых содержит одинаковый набор элементов («полей»), а каждое «поле» содержит уже только символьные данные, вы можете использовать один единственный HTML-элемент TABLE для отображения XML-документа. Пример такого XML-документа:

Отображение XML-документов с использованием таблиц каскадных стилей

Вставка элементов HTML в XML-документы и использование пространства имен

Хотя вы можете использовать таблицы каскадных стилей для добавления базовых возможностей форматирования элементов XML в ваш документ, было бы хорошо иметь возможность добавлять стандартные HTML -элементы – такие, как гиперссылки, изображения и формы – чтобы ваш документ выигрывал от применения встроенных в эти элементы функций. К счастью, когда вы отображаете ваш документ с помощью присоединенной таблицы стилей, вы можете вставить в ваш документ любой стандартный элемент HTML и заставить браузер отобразить этот элемент с использованием специальных зарезервированных для этой цели имен элементов.

Вам может показаться, что можно вставить HTML -элемент, просто присвоив XML -элементу такое же имя. Например, вставить HTML -элемент IMG , просто создав элемент IMG следующим образом:

Однако у браузера нет возможности узнать, что это HTML -элемент, а не обычный созданный вами XML -элемент. Чтобы подобный механизм мог работать, все имена HTML -элементов (а их много) должны были быть зарезервированы исключительно для вставки HTML -элементов. Такой подход, однако, противоречил бы духу XML , в соответствии с которым вам разрешается использовать для ваших элементов любые корректно заданные имена.

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

Идентификатор пространства имен добавляется в начале имени элемента и отделяется от остальной части имени двоеточием (:), как в следующем примере:

Элемент с именем my-namespace:MY-ELEMENT и элемент с именем MY-ELEMENT могут существовать в одном и том же документе и считаются различными элементами, поскольку принадлежат отдельным пространствам имен: my-namespace:MY-ELEMENT принадлежит пространству имен my-namespace , а элемент MY-ELEMENT по умолчанию принадлежит к пространству имен документа.

Однако прежде чем вы сможете использовать пространство имен , вы должны соответствующим образом объявить его. Хотя есть несколько мест, в которых вы можете сделать объявление пространства имен, проще всего это сделать внутри начального тега элемента, для которого вы хотите использовать пространство имен . Например, вы можете объявить пространство имен my-namespace , как показано на рисунке 7.38.

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

Если имя XML -элемента совпадает с именем стандартного HTML -элемента (например, IMG , A или HR ) и если он принадлежит пространству имен html , Internet Explorer 5 интерпретирует его как HTML -элемент и поместит его на отображаемую страницу. Однако если элемент не принадлежит пространству имен html , Internet Explorer 5 интерпретирует его как обычный XML -элемент.

Пространство имен html является специальным, зарезервированным пространством имен, которое объявляется следующим образом:

Вот пример XML -элемента, который указывает Internet Explorer 5 вставить HTML -элемент IMG , для которого источником изображения является файл Raven.bmp:

Это корректно сформированный пустой XML -элемент. Его имя включает указание пространства имен, он также имеет два атрибута. Первый атрибут объявляет пространство имен , в то время как второй атрибут является стандартным HTML -атрибутом, который вы можете включить в начальный тег HTML -элемента IMG .

Имейте в виду, что если вы вставляете HTML -элемент описанным выше способом, XML -документ должен иметь присоединенную таблицу стилей, и вы должны открыть его непосредственно в браузере (как и все XML -документы, описанные в этой лекции).

Ссылка. Официальную спецификацию пространства имен вы можете найти на Web-странице консорциума W3C по адресу http://www.w3.org/TR/REC-xml-names/.

Версия документа Inventory01.css , представленная в Листинге 7.1, иллюстрирует технику включения HTML в XML -документ. Обратите внимание, что к этому документу присоединена оригинальная версия таблицы стилей Raven.css , которая содержится в Листинге 7.5.

Документ включает три стандартных HTML -элемента.

  • Он содержит изображение, представленное следующим XML-элементом:

Этот элемент помещает стандартный HTML-элемент IMG (изображение). Атрибут HTML ALIGN=’LEFT’ делает изображение обтекаемым и размещает его слева от последующего текста документа. Этот метод является альтернативой методу, с которым вы познакомились ранее в разделе «Отобразите обтекаемое текстом изображение».

Этот элемент вставляет стандартный элемент HTML A (якорь).

Этот элемент вставляет стандартный элемент HTML HR (горизонтальная линия).

На рисунке 7.39 показано как Internet Explorer 5 отображает документ.

Создание и использование полноценной таблицы стилей

В последующих упражнениях вы создадите XML -документ, содержащий первые четыре строфы поэмы Эдгара По «Ворон». Затем вы создадите таблицу каскадных стилей, которая отформатирует этот документ с использованием почти всех свойств, рассмотренных в этой лекции. На рисунке 7.40 показано как поэма будет выглядеть в Internet Explorer 5.

Создайте документ

  1. Откройте новый, пустой текстовый файл в вашем текстовом редакторе и введите XML-документ, представленный в Листинге 7.12.

Обратите внимание на следующие важные особенности документа Raven04.xml :

  • к нему присоединена таблица каскадных стилей Raven04.css, которую вы создадите в следующем упражнении;
  • перед каждым элементом STANZA расположен пустой элемент IMAGE . Вы используете элемент IMAGE для отображения рисунка ворона в начале каждой строфы;
  • последняя строка в каждой строфе помещена в специальный элемент с именем LASTVERSE . Это дает вам возможность форматировать последнюю строку отличным образом от остальных строк. (Она выровнена не по левому краю, а по правому.)

Создайте таблицу стилей

  1. Откройте новый, пустой файл в вашем текстовом редакторе и введите таблицу каскадных стилей, представленную в Листинге 7.13.

Относительно этой таблицы стилей следует иметь в виду:

XML для начинающих

Вероятно, вы слышали о языке XML и вам известно множество причин, по которым его необходимо использовать в вашей организации. Но что именно представляет собой XML? В этой статье объясняется, что такое XML и как он работает.

В этой статье

Пометки, разметка и теги

Для понимания языка XML он помогает понять смысл пометки данных. Люди создали документы для протяжении столетий, и пока они не пометили их в течение всего времени. Например, преподаватели замечают все время на учебные материалы для учащихся. Они указывают слушателям на то, что вы можете перемещать параграфы, прояснить предложения, исправлять опечатки и т. д. Пометка документа определяет структуру, значение и визуальное представление данных в документе. Если вы когда-нибудь использовали функцию «исправления» в Microsoft Office Word, вы использовали заметку, которая была установлена на компьютере.

В мире информационных технологий термин «пометка» превратился в термин «разметка». При разметке используются коды, называемые тегами (или иногда токенами), для определения структуры, визуального оформления и — в случае XML — смысла данных.

Текст этой статьи в формате HTML является хорошим примером применения компьютерной разметки. Если в Microsoft Internet Explorer щелкнуть эту страницу правой кнопкой мыши и выбрать команду Просмотр HTML-кода, вы увидите читаемый текст и теги HTML, например

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

) и местоположение рисунков.

Отличительные черты XML

Документы в форматах HTML и XML содержат данные, заключенные в теги, но на этом сходство между двумя языками заканчивается. В формате HTML теги определяют оформление данных — расположение заголовков, начало абзаца и т. д. В формате XML теги определяют структуру и смысл данных — то, чем они являются.

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

Учитывайте при работе следующее:

HTML нельзя использовать вместо XML. Однако XML-данные можно заключать в HTML-теги и отображать на веб-страницах.

Возможности HTML ограничены предопределенным набором тегов, общим для всех пользователей.

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

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

Но не путайте теги в данном примере с тегами в HTML-файле. Например, если приведенный выше текст в формате XML вставить в HTML-файл и открыть его в браузере, то результаты будут выглядеть следующим образом:

Izzy Siamese 6 yes no Izz138bod Colin Wilcox

Веб-браузер проигнорирует теги XML и отобразит только данные.

Правильно сформированные данные

Вероятно, вы слышали, как кто-то из ИТ-специалистов говорил о «правильно сформированном» XML-файле. Правильно сформированный XML-файл должен соответствовать очень строгим правилам. Если он не соответствует этим правилам, XML не работает. Например, в предыдущем примере каждый открывающий тег имеет соответствующий закрывающий тег, поэтому в данном примере соблюдено одно из правил правильно сформированного XML-файла. Если же удалить из файла какой-либо тег и попытаться открыть его в одной из программ Office, то появится сообщение об ошибке и использовать такой файл будет невозможно.

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

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

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

Схемы

Не пугайтесь термина «схема». Схема — это просто XML-файл, содержащий правила для содержимого XML-файла данных. Файлы схем обычно имеют расширение XSD, тогда как для файлов данных XML используется расширение XML.

Схемы позволяют программам проверять данные. Они формируют структуру данных и обеспечивают их понятность создателю и другим людям. Например, если пользователь вводит недопустимые данные, например текст в поле даты, программа может предложить ему исправить их. Если данные в XML-файле соответствуют правилам в схеме, для их чтения, интерпретации и обработки можно использовать любую программу, поддерживающую XML. Например, как показано на приведенном ниже рисунке, Excel может проверять данные на соответствие схеме CAT.

Схемы могут быть сложными, и в данной статье невозможно объяснить, как их создавать. (Кроме того, скорее всего, в вашей организации есть ИТ-специалисты, которые знают, как это делать.) Однако полезно знать, как выглядят схемы. Следующая схема определяет правила для набора тегов . :

Не беспокойтесь, если в примере не все понятно. Просто обратите внимание на следующее:

Строковые элементы в приведенном примере схемы называются объявлениями. Если бы требовались дополнительные сведения о животном, например его цвет или особые признаки, то специалисты отдела ИТ добавили бы к схеме соответствующие объявления. Систему XML можно изменять по мере развития потребностей бизнеса.

Объявления являются мощным средством управления структурой данных. Например, объявление означает, что теги, такие как и
, должны следовать в указанном выше порядке. С помощью объявлений можно также проверять типы данных, вводимых пользователем. Например, приведенная выше схема требует ввода положительного целого числа для возраста кота и логических значений (TRUE или FALSE) для тегов ALTERED и DECLAWED.

Если данные в XML-файле соответствуют правилам схемы, то такие данные называют допустимыми. Процесс контроля соответствия XML-файла данных правилам схемы называют (достаточно логично) проверкой. Большим преимуществом использования схем является возможность предотвратить с их помощью повреждение данных. Схемы также облегчают поиск поврежденных данных, поскольку при возникновении такой проблемы обработка XML-файла останавливается.

Преобразования

Как говорилось выше, XML также позволяет эффективно использовать и повторно использовать данные. Механизм повторного использования данных называется преобразованием XSLT (или просто преобразованием).

Вы (или ваш ИТ-отдел) можете также использовать преобразования для обмена данными между серверными системами, например между базами данных. Предположим, что в базе данных А данные о продажах хранятся в таблице, удобной для отдела продаж. В базе данных Б хранятся данные о доходах и расходах в таблице, специально разработанной для бухгалтерии. База данных Б может использовать преобразование, чтобы принять данные от базы данных A и поместить их в соответствующие таблицы.

Сочетание файла данных, схемы и преобразования образует базовую систему XML. На следующем рисунке показана работа подобных систем. Файл данных проверяется на соответствие правилам схемы, а затем передается любым пригодным способом для преобразования. В этом случае преобразование размещает данные в таблице на веб-странице.

В следующем примере кода показан один из способов написания преобразования. Данные>

В этом примере показано, как может выглядеть текст одного из типов преобразования, но помните, что вы можете ограничиться четким описанием того, что вам нужно от данных, и это описание может быть сделано на вашем родном языке. Например, вы можете пойти в отдел ИТ и сказать, что необходимо напечатать данные о продажах для конкретных регионов за последние два года, и что эти сведения должны выглядеть так-то и так-то. После этого специалисты отдела могут написать (или изменить) преобразование, чтобы выполнить вашу просьбу.

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

XML в системе Microsoft Office

Профессиональные выпуски Office обеспечивают всестороннюю поддержку XML. Начиная с Microsoft Office 2007, в Microsoft Office используются форматы файлов на основе XML, например DOCX, XLSX и PPTX. Поскольку XML-данные хранятся в текстовом формате вместо запатентованного двоичного формата, ваши клиенты могут определять собственные схемы и использовать ваши данные разными способами без лицензионных отчислений. Для получения дополнительных сведений о новых форматах ознакомьтесь с разрешениями в разделе форматы файлов Open XML и расширение имени файла. К другим преимуществам относятся:

Меньший размер файлов. Новый формат использует ZIP и другие технологии сжатия, поэтому размер файла на 75 процентов меньше, чем в двоичных форматах, применяемых в более ранних версиях Office.

Более простое восстановление данных и большая безопасность. Формат XML может быть легко прочитан пользователем, поэтому если файл поврежден, его можно открыть в Блокноте или другой программе для просмотра текста и восстановить хотя бы часть данных. Кроме того, новые файлы более безопасны, потому что они не могут содержать код Visual Basic для приложений (VBA). Если новый формат используется для создания шаблонов, то элементы ActiveX и макросы VBA находятся в отдельном, более безопасном разделе файла. Кроме того, можно удалять личные данные из документов с помощью таких средств, как инспектор документов. Дополнительные сведения об использовании инспектора документов можно найти в статье Удаление скрытых и персональных данных путем проверки документов.

Итак, но что делать, если у вас есть XML-данные без схемы? Программы Office, поддерживающие XML, обладают собственными подходами для облегчения работы с данными. Например, если вы открыли XML-файл, который еще не содержит, Excel выводит схему. После этого приложение Excel выдаст вам возможность загрузить эти данные в XML-таблицу. С помощью списков XML и таблиц можно сортировать, фильтровать данные и добавлять в них вычисления.

Включение средств XML в Office

По умолчанию вкладка «Разработчик» не отображается. Ее необходимо добавить на ленту для использования команд XML в Office.

В Office 2016, Office 2013 или Office 2010: Отображение вкладки «Разработчик».

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Публикация XML-данных в форматах HTML и PDF с помощью одной таблицы стилей XSLT

Простое и быстрое преобразование XML-данных в форматы HTML и PDF

Предварительные условия

Для освоения материала данной статьи весьма полезным является знакомство с XML и с другими стандартами организации W3C. Чтобы выполнить примеры из этой статьи, необходимо установить СУБД eXist, а также eXist-функцию расширения XQuery для цифровой публикации. См. раздел Ресурсы.

Хранение данных в рамках такой архитектуры, как XForms/REST/XQuery [XRX], сегодня является обычным явлением (см. раздел Ресурсы). Хранящиеся таким образом данные можно запрашивать, извлекать и преобразовывать в желаемый формат. Кроме того, разработчики веб-приложений могут предоставлять пользователям возможности для извлечения данных в формате HTML (для просмотра в своих веб-браузерах) или в виде PDF-файлов (с целью загрузки для последующего использования).

В этой статье показано, каким образом можно преобразовать XML-данные в HTML, затем из HTML в XSL-FO, и, наконец, из XSL-FO в PDF с помощью функции расширения XQuery, основанной на инструменте CSSToXSLFO (см. раздел Ресурсы).

Преобразование XML-данных в другие форматы

Часто используемые сокращения
  • CSS: Cascading stylesheet (Каскадная таблица стилей)
  • HTTP: Hypertext Transfer Protocol (Протокол передачи гипертекстовых файлов)
  • JAR: Java-архив
  • LDAP: Lightweight Directory Access Protocol (протокол LDAP)
  • SQL: Structured Query Language (Язык структурированных запросов)
  • W3C: World Wide Web Consortium (консорциум W3C)
  • XSL-FO: Extensible Stylesheet Language Formatting Objects (Расширяемый язык таблиц стилей — Объекты форматирования)
  • XSLT: Extensible Stylesheet Language Transformations(Расширяемый язык преобразований таблиц стилей — Преобразования)

Как правило, для преобразования данных из XML в HTML и в XSL-FO требуются две XSL-таблицы стилей: одна таблица для преобразования из XML в HTML и другая таблица стилей XSL-FO для преобразования HTML в XSL-FO-документ, который затем преобразуется в PDF с помощью процессора XSL-FO. Другими словами, для такой среды, как веб-приложение, генерирующее отчеты в форматах HTML и PDF, разработчику необходимо написать новую таблицу стилей XSLT, которая преобразует данные в HTML, а затем написать, отладить и сопровождать соответствующую таблицу стилей XSL-FO. Поддержание этих таблиц стилей может оказаться трудным делом, а работа с технологией XSL-FO также далеко не проста. К счастью, отчеты не обязаны быть изощренными, поэтому их разметку можно с легкостью выразить с помощью CSS-файла. Затем такой CSS-файл можно обработать с помощью утилиты CSSToXSLFO , которая способна генерировать нужный XSL-FO-документ после написания лишь небольшого объема программного кода.

Этот процесс и другие подобные ситуации идеально подходят для применения описываемого в данной статье подхода — написания XSLT-таблицы стилей, которая преобразует XML в HTML, с последующим включением в нее нескольких дополнительных CSS-инструкций, позволяющих этой таблице осуществлять преобразование HTML в XSL-FO, а затем в PDF.

Утилита CSSToXSLFO

Утилита CSSToXSLFO поддерживает преобразования XML-документа вместе с CSS-таблицей стилей версии 2 (CSS2) в XSL-FO-документ. Чтобы использовать эту утилиту, я разработал функцию расширения XQuery для XML-СУБД eXist в виде фрагмента модуля расширения XQuery для цифровой публикации.

Эта утилита обрабатывает большую часть спецификаций CSS2. Для поддержки специфических особенностей XSL-FO эта утилита предоставляет несколько CSS-инструкций расширения, которые обычно игнорируются браузерами. Используйте эти свойства в правиле @page раздела @media в таблице стилей CSS. Эти свойства связаны с такими артефактами страницы, как регионы, нумерация, ссылки, заголовки, именованные строки, переносы, сноски, внешние графические элементы и нетипичные элементы. Обязательно просмотрите руководство по утилите CSSToXSLFO (см. раздел Ресурсы) для получения дополнительной информации об этом инструменте и изучения рекомендаций по совершенствованию создаваемой вами таблицы стилей XSLT.

XML-СУБД eXist

eXist-db — это система управления базами данных (СУБД) с открытым исходным кодом, построенная полностью на XML-технологиях (XML-СУБД). Она поддерживает, помимо других стандартов, XQuery, XPath и XSLT. СУБД eXist хранит данные согласно XML-модели данных и обладает высокой степенью совместимости со стандартом XQuery. Хранящиеся данные обрабатываются с помощью XQuery с использованием индекса. Кроме того, эта СУБД поддерживает полнотекстовый индекс на основе Apache Lucene.

XQuery-механизм, применяющийся в СУБД eXist, является расширяемым; соответственно в состав eXist входят различные модули расширения XQuery. Эти модули поддерживают следующие функции расширения XQuery.

  • Глобальный кэш пар «ключ-значение»
  • Разнообразные операции сжатия
  • Дополнительные операции с типами «дата/время»
  • Разнообразные операции с файлами и каталогами
  • HTTP-запросы (XPath-модуль)
  • Операции, применяемые к изображениям, хранящимся в базе данных (получение размеров изображения, создание миниатюр, изменение размеров изображения)
  • Применение интерфейса Java Naming and Directory Interface для доступа к таким каталогам, как LDAP, и для манипулирования этими каталогами
  • Отправка электронных писем в текстовом формате или в формате HTML
  • Календарное планирование выполнения заданий и управление существующими заданиями
  • Выполнение SQL-операций с реляционной СУБД
  • Выявление различий между XML-узлами
  • Представление XSL-FO
  • Функциональность XProc
  • Криптографические операции

И модуль eXist, и утилита CSSToXSLFO написаны на языке Java. На момент написания данной статьи модуль eXist позволяет использовать в качестве XSL-FO-процессора процессор Apache Formatting Objects Processor (FOP) или процессор RenderHouse XEP. Посетите веб-сайт eXist для ознакомления с инструкциями по установке этой СУБД, которые помогут вам выполнить примеры из этой статьи.

eXist-модуль для цифровой публикации

В настоящее время eXist-модуль модуль для цифровой публикации находится в стадии разработки и со временем будет поддерживать большее количество функций. На данный момент этот модуль имеет функцию html-to-xslfo() , которая весьма полезна в случае применения подхода, описываемого в этой статье.

Цель этого модуля состоит в том, чтобы служить единым источником для всех функций расширения XQuery, необходимых для цифровой публикации, в том числе для преобразования между следующими форматами: DocBook, Open XML, DOC, DOCX, .html, PDF, TXT, RTF, PPT, PPTX, CSV. Для установки этого модуля в среде eXist выполните следующие шаги:

  1. Загрузите eXist-модуль для цифровой публикации в формате JAR, а затем скопируйте его в каталог $EXIST_HOME/lib/extensions.
  2. Загрузите CSS-файл2xslfo1_6_2.jar, а затем скопируйте его в каталог $EXIST_HOME/lib/user.
  3. Добавьте в раздел встроенных модулей в файле $EXIST_HOME/conf.xml.

Примеры

В этом разделе анализируется использование утилиты CSSToXSLFO реализованной в eXist-модуле расширения XQuery для цифровой публикации. При решении этой задачи используйте XML-данные, представленные в листинге 1, а также таблицу стилей XSLT (xml-to-html.xsl), включенную в пример кода (см. раздел Загрузка.

Примечание: Чтобы упростить восприятие этой статьи, я не привожу в ней все содержимое используемой таблицы стилей XSLT. Вместо этого я показываю лишь те элементы, которые делают эту таблицу стилей пригодной для преобразования XML в HTML и в PDF.

Примеры будут загружены в XML-СУБД eXist в виде коллекции с именем html-and-pdf-single-stylesheet расположенной в корневой коллекции eXist — это позволит вам просмотреть каждый пример в своем браузере. Например, чтобы просмотреть пример 1, введите в адресной строке своего браузера следующий URL-адрес (предполагается, что СУБД eXist установлена на локальной машине).

Чтобы значительно полнее использовать функциональные возможности инструмента CSSToXSLFO вам не потребуется никакой другой XQuery-код, кроме кода, показанного в листинге 2 и листинге 3. Этот код представляет XML-данные в формате HTML и в формате PDF соответственно. Для дальнейшего совершенствования PDF-документов необходимо добавить CSS-инструкции в CSS-раздел таблицы стилей XSLT.

Листинг 1. XML-документ, представляющий собой сводку выставленных счетов-фактур (файл xml-data.xml в примерах кода)

Первый пример (см. листинг 2), представляет собой XQuery-скрипт, который преобразует XML-данные, представленные в листинге 1 в формат HTML. Этот скрипт использует eXist-функцию transform:transform() , которая, в свою очередь, преобразует XML-данные с помощью таблицы стилей XSLT и (при желании) параметров для преобразования. Вы можете написать таблицу стилей XSLT в соответствии со спецификацией XSLT 1.0 (средствами Apache Xalan) или в соответствии со спецификацией XSLT 2.0 (например, средствами Saxon).

Листинг 2. XQuery-скрипт, преобразующий XML-данные в формат HTML (файл example-01.xql в примерах кода)

На рисунке 1 показан результирующий HTML-документ, отображенный в моем браузере. Этот HTML-документ демонстрирует сведения по трем счетам-фактурам с использованием шрифта без засечек. (Перейдите по ссылке: Текстовая версия форматированного контента, представленного на рис. 1 и на рис. 2).

Рисунок 1. Результат преобразования в формат HTML

Сначала XML-данные преобразуются в формат HTML, как в предыдущем примере. Результирующий HTML-документ содержит все CSS-инструкции, необходимые для представления HTML-документа в желаемом виде, а также специфические CSS-инструкции расширения для CSSToXSLFO , которые позволяют задействовать более изощренные функции XSL-FO.

Для простого сценария применения который описывается этой статье, такие инструкции расширения нам не нужны. Утилита CSSToXSLFO преобразует HTML-документ в XSL-FO-документ, который, в свою очередь, генерирует PDF-документ, весьма похожий на HTML-документ.

После этого мы преобразуем результирующий HTML-документ в XSL-FO-документ с помощью функции html-to-xslfo() , а затем генерируем PDF-документ (см. листинг 3). Для создания PDF-документа используется функция render() eXist-модуля xslfo .

Листинг 3. XQuery-скрипт, преобразующий XML-данные в формат PDF (файл example-02.xql в примерах кода)

На рисунке 2 показан результирующий PDF-документ, отображенный в моем браузере. Этот PDF-документ демонстрирует сведения по трем счетам-фактурам с использованием шрифта с засечками. (Перейдите по ссылке: Текстовая версия форматированного контента, представленного на рис. 1 и на рис. 2.)

Рисунок 2. Результат преобразования в формат PDF

В листинге 4 показаны CSS-инструкции, необходимые для представления XML-данных в формате HTML и в формате PDF. Для получения аналогичного PDF-файла я добавил лишь одну CSS-инструкцию — которая представляет заголовки таблицы с помощью полужирного шрифта.

Листинг 4. CSS-инструкции для аналогичного представления XML-данных в формате HTML и в формате PDF

Заключение

В этой статье для преобразования XML-данных в форматы HTML и PDF я применил простую функцию, которая использует лишь мощь и простоту CSS-синтаксиса, а также несколько инструкций расширения, позволяющих задействовать более сложные функции XSL-FO. Этот подход особенно полезен в ситуациях, когда обрабатываемые отчеты или документы имеют простое стилевое решение.

IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

Конфликты в XML. Пространство имен в XML. Способы именования пространства имен в XML. Как использовать HTML теги в XML документах

  • 04.06.2012
  • XML и XLST
  • Один комментарий

Здравствуйте, уважаемые посетители моего скромного блога для начинающих вебразработчиков и web мастеров ZametkiNaPolyah.ru. Сегодня я продолжу рубрику Заметки о XML и XLST. И хочу поговорить о пространстве имен в XML, что такое пространство имен и для чего оно используется, так же затрону тему конфликта имен в XML документе и как бороться с этим явлением, поговорим о том как задать пространство имен в XML документе, сразу скажу, что есть два способа задания пространства имен, первый при помощи атрибута xmlns, а второй при помощи префиксов, посмотрим различие между двумя этими способами. Поговорим о рекомендованных способах именования пространства имен в XML, их так же два. Первый заключается в использование URN, а второй в использование URL. Разберемся, какой из способов, когда и как применяется. Так же мы поговорим о том, как задать пространство имен XML атрибутам. А так же разберемся как можно использовать HTML теги в XML документах и что для этого нужно сделать.

Конфликты в XML документах. Пространство имен в XML документах

Очень важным моментом в XML является конфликт имен тэгов, ведь имена тегов мы придумываем сами, и нет гарантии, что кто-нибудь другой в своем проекте не будет использовать точно такие же имена для своих тегов, как и мы. Например, у меня есть книжный магазин и решил я записывать название книг внутрь тега … , а какой-нибудь Василий Иванович Пупкин использует этот тег для своих каких-то целей, к примеру, продает он аудио пластинки и внутрь тега записывает название фильмов. И все это будет хорошо работать, пока не решим мы с Пупкиным объединиться и вместе продавать книги и пластинки. Получается ситуация, в которой один и тот же XML элемент имеет одинаковое имя, но имеет разный смысл. И наступает процесс именуемый конфликт имен.

Как и в случае с кодировками проблема конфликта имен в XML решена изящно. И называется это решение пространство имен. Давайте для начала разберемся, что такое пространство имен в XML, грубо говоря, когда мы придумываем какие-то имена для XML элементов, то есть придумываете XML теги, вы как бы себя ограничиваете этим пространством и говорите – это мое пространство имен и сюда ребятки не суйтесь. Или если вернуться к моему примеру, то я придумываю тэг и говорю, что этот тег относится к пространству книжный магазин или же стандарта книжный магазин, тем самым вы уже ограничили себе область действия. В свою очередь Пупкин может сказать, я придумал элемент , который принадлежит к пространству аудиомагазин. И получается следующая штука, теги называются одинаково, но имеют различный смысл, различное назначение и находятся в различных областях, никак не мешая друг другу.

Если до сих пор непонятно, то можно привести более конкретный пример – файловая система. Все наверное знают, что в одной папке не может находиться два файла с одинаковым названием и расширением. Но можно ведь создать две папки, в одну папку поместить файл document.xml и в другую папку поместить файл document.xml и эти два файла будут прекрасно существовать, и работать, имея различное содержание. Эти два файла для операционной системы будут разные так как она учитывает не только имя файла, но и путь к этому файлу, то есть для операционной системы имя файла состоит из непосредственного имени файл плюс полный путь к этому файлу. Вот как раз из-за этого пути к файлу имена становятся разными и не мешают друг другу.

Пространство имен в XML это примерно то же самое, что и файловая система, грубо говоря имя тега в XML состоит из двух частей, первая часть – это непосредственно имя самого тега(локальное имя, то что мы видим и пишем в редакторе) и вторая часть – пространство имен данного тега(как папка в файловой системе), только если файловая система это локальная штука, то есть работает в пределах одного компьютера, то пространство имен в XML распространяется на всю информационную систему мира, то есть для всех машин в мире. Понятно, что пространство имен должно быть уникальным, так же как и полный путь к папке. По своей сути пространство имен это строка текста, но эта строка должна быть уникальной.

Рекомендации w3.org при именовании пространства имен

Да, w3.org попыталась как-то ограничить процесс придумывания имен для пространства имен и рекомендует нам консорциум два способа именования пространства имен. Обратите внимание, что это не стандарт, а просто рекомендация. Если вы решили дать своему пространству имен какое-то имя, ну например moe-prostranstvo-imen, то начинать это имя рекомендуется с последовательности urn:, а затем уже имя пространства.

Читать еще:  Задания по html
Ссылка на основную публикацию
Adblock
detector