Средства разработки web-страниц
Понятие и средства создания Java-апплета. Использование ActiveX объектов на web-страницах. Редакторы типа WYSIWYG. Возможности технологий COM, CORBA, XML Path. Описание содержания XML документа с помощью схем DTD. Создание меток и сущностей в DTD.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 06.12.2012 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
В представленной далее грамматике используются незавершенные конструктивы QName и NCName, описанные в [XML Names], а также пробельный символ S, описанный в [XML]. Грамматика использует ту же самую нотацию EBNF, что [XML] (за исключением того, что названия грамматических конструкций всегда пишутся с заглавной буквы).
Обработка выражения начинается с его разбиения на строки символов, подлежащих преобразованию в лексемы. Затем идет разбор полученной последовательности лексем. В промежутки между лексемами могут свободно ставиться пробельные символы.
Формирование запросов XPath
Абакан, 2009
XPath не рассчитан на работу с реляционными данными. Чтобы использовать XPath-запросы для выборки реляционных данных, необходимо создать схему данных XDR или XSD. XDR была разработана несколько лет назад при активном участии Microsoft, т.к. в то время необходимость в схемах данных была, а, по существу, самих схем не было. С появлением XSD популярность и актуальность применения XDR начали падать.
Схема данных выполняет две важные функции: задает структуру будущего XML-документа и определяет, какие поля и таблицы должны использоваться при выполнении запроса XPath. Такие схемы называются аннотированными схемами запросов, а атрибуты, связывающие объекты базы данных с XML-узлами - аннотациями. До выхода в свет SQLXML 2.0 можно было использовать только аннотированные схемы на основе SDR [6]. Однако сейчас лучше использовать аннотированные схемы на основе спецификации XSD [7]. Синтаксис шаблонов с использованием запросов XPath:
<your_root xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:header>
<xql:param name="your_param_name"> param_value </sql:param>
<xql:param name="your_param_name"> param_value </sql:param>...n
</sql:header>
<sql:xpath-query mapping-schema="your_schema.xml">
XPath query
</sql:xpath-query>
</your_root>
В этом примере аннотированная схема должна находится в файле your_schema.xml. Как видно из синтаксиса, возможно создание параметризированных запросов XPath. Параметр в запросе обозначается начальным символом $.
Рассмотрим пример аннотированной схемы XDR, который будет использоваться для запросов XPath. В результирующем документе будут присутствовать имена, фамилии и адреса всех авторов:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:sql="urn:schemas-microsoft-com:xml-sql"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="address" />
<ElementType name="Authors" sql:relation="Authors">
<AttributeType name="au_fname" dt:type="string" />
<AttributeType name="au_lname" dt:type="string" />
<attribute type="au_fname"/>
<attribute type="au_lname" />
<element type="address" sql:field="address"/>
</ElementType>
</Schema>
Здесь используется аннотация relation для того, чтобы указать, с какой таблицей будет связан элемент Authors. Дочерние элементы наследуют связь с таблицей, указанной для родительского ElementType. Связывание полей таблицы или представления (view) можно выполнять явно, с использованием аннотации field. В данном примере для элементов AttributeType этого делать не нужно, т.к. отображения на соответствующие поля выполняются автоматически. Однако для дочерних элементов ElementType, которые по умолчанию связываются с таблицами, такая аннотация может быть необходима. Наиболее часто используемые аннотации приведены далее.
Теперь можно перейти к самому шаблону. Предположим, аннотированную схему вы сохранили под именем MySchema.xml.
Вот так выглядит шаблон, выбирающий имена, фамилии и адреса всех авторов:
<my_root xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<sql:xpath-query mapping-schema="../Schema/MySchema.xml">
/Authors
</sql:xpath-query>
</my_root>
Так как схемы XDR постепенно вытесняются схемами XSD, перепишем пример с использованием XSD.
Вот список основных отличий XDR от XSD[9], к которому я очень часто обращаюсь:
XDR XSD
Schema schema
ElementType element
AttributeType attribute
Attribute none
С учетом этого схема будет выглядеть так:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="authors" sql:relation="authors">
<xsd:complexType>
<xsd:attribute name="au_fname" sql:field="au_fname" />
<xsd:attribute name="au_lname" sql:field="au_lname" />
<xsd:attribute name="address" sql:field="address" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Здесь явно указаны аннотации, позволяющие связать XML-элементы с таблицей authors и соответствующими полями. В данном случае все они не обязательны, т. к. SQLXML может вывести связи из названий узлов. Вот пример, где аннотации действительно необходимы. Для разнообразия адрес и фамилия вынесены в отдельные элементы:
<?xml version="1.0" encoding="windows-1251" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Авторы" sql:relation="authors">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Фамилия" sql:field="au_lname"/>
<xsd:element name="Адрес" sql:field="address" />
</xsd:sequence>
<xsd:attribute name="Имя" sql:field="au_fname"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Если схема находится в виртуальном каталоге, тип которого schema, вы можете выполнять XPath-запросы, непосредственно указывая их в URL. Результирующий документ может не иметь корневого элемента, поэтому не забывайте указывать параметр root.
http://server/server_pubs/schema/xsd_map_schema.xml/Авторы?root=root
Вот другие аннотации, часто используемые в схемах:
relationship - элемент, обозначающий связь с соответствующими друг другу первичными и внешними ключами. Используется для построения иерархических XML-документов.
is-constant - указывает, что соответствующий элемент не связывается с таблицей или колонкой базы данных.
map-field - булева переменная, принимающая значение 0 или 1. Значение 0 указывает, что соответствующий элемент не будет присутствовать в результирующем документе. С выходом SQLXML 3.0 аннотация была переименована в mapped.
limit-field и limit-value - предназначены для указания поля и его значения, по которым будет фильтроваться запрос к базе данных. Результат использования этих аннотаций аналогичен ограничению результирующего набора строк с помощью оператора WHERE.
use-cdata - указывает, что соответствующий XML-узел будет представлен в секции CDATA результирующего документа. Узел должен быть связан с полем таблицы или представления и не может применяться совместно с url-encode или ID, IDREF, IDREFS, NMTOKEN и NMTOKENS.
hide - булева переменная, принимающая значение 0 или 1. Указывает на то, что соответствующий XML-узел будет скрыт (значение 0) в результирующем XML-документе, однако может быть использован в запросе XPath. Не путайте её с аннотацией mapped. Различие в том, что при помощи mapped XML-узел совсем исключается из документа, так что не может быть использован в запросе XPath.
Рассмотрим пример, демонстрирующий работу некоторых из перечисленных аннотаций. В разделе FOR XML EXPLICIT был составлен иерархический список издательств и служащих, которые в них работают. Попробуем получить такой же XML-документ с помощью аннотированной схемы:
<?xml version="1.0" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="PubsEmployees"
parent="publishers" parent-key="pub_id"
child="employee" child-key="pub_id" />
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="pubs" sql:relation="publishers">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="employee"
sql:relation="employee"
sql:relationship="PubsEmployees" >
<xsd:complexType>
<xsd:attribute name="First_Name" sql:field="fname"
type="xsd:string" />
<xsd:attribute name="Last_Name" sql:field="lname"
type="xsd:string" />
<xsd:attribute name="minit" sql:field="minit"
type="xsd:string" sql:hide="1" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="PubName" sql:field="pub_name" type="xsd:string"/>
<xsd:attribute name="City" sql:field="city" type="xsd:string"
sql:limit-field="pub_name" sql:limit-value="Binnet & Hardley" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Здесь использован атрибут hide для удаления XML-узла из результирующего документа, но сохранить возможность его использования в XPath-запросах. Атрибуты limit-field и limit-value ограничивают количество издательств одним - «Binnet & Hardley». Раздел xsd:annotation вынесен, однако его можно было использовать и внутри узла <xsd:element name="employee"…>. В таком случае имя элемента relationship можно было не указывать.
Примерно так можно использовать эту схему:
http://server/server_pubs/schema/schema1.xml/pubs/employee[@minit=""]?root=root
Схемы можно непосредственно указывать в шаблоне. Например:
<?xml version="1.0" encoding="windows-1251" ?>
<my_root xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ms="urn:schemas-microsoft-com:mapping-schema"
id="InLineSchema1" sql:is-mapping-schema="1">
<xsd:element name="Авторы" ms:relation="authors">
<xsd:complexType>
<xsd:attribute name="Имя" ms:field="au_fname"/>
<xsd:attribute name="Фамилия" ms:field="au_lname"/>
<xsd:attribute name="Адрес" ms:field="address"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<sql:xpath-query mapping-schema="#InLineSchema1">
/Авторы
</sql:xpath-query>
</my_root>
Для того чтобы запрос XPath использовал схему, а также для сокрытия ее в результирующем документе XML, указан атрибут is-mapping-schema. Он может принимать значения 0 или 1. Кроме этого, необходимо явно сослаться на используемую схему, так как их в шаблоне может быть несколько. Это делается путем добавления атрибута id в схему и атрибута mapping-schema - в раздел самого запроса.
Создание аннотированных схем не совсем тривиальная задача, требующая к тому же знания большого количества тонкостей. К счастью, в Microsoft разработали специальный инструмент для автоматической генерации схем - XML View Mapper. Его можно бесплатно скачать по адресу http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/443/msdncompositedoc.xml. У него хороший графический интерфейс и достаточно неплохая документация; думаю, вы с ним разберетесь быстро. Единственный его недостаток - отсутствие возможности сохранять схемы в формате XSD. Надеюсь, в будущем эта возможность появится.
К сожалению, SQL Server 2000 лишь частично поддерживает спецификацию XPath и возможности использования XPath-запросов к базе данных. Ниже приведена сводка поддерживаемых и не поддерживаемых возможностей.
Поддерживаемая функциональность XPath:
Не поддерживаемая функциональность:
В качестве простых запросов (query) могут выступать любые SQL-инструкции. Шаблоны могут быть использованы для изменения данных, хотя это и не лучшее решение. Другие методы изменения данных рассматриваются в разделе Апдейтаграммы и XML Bulk Load.
Использование запросов XPath
XML-документы представляют собой иерархию, или дерево узлов, в чем-то схожее с иерархией каталогов и файлов в файловой системе. Этом и объясняется сходство синтаксиса URL и XPath. В следующей таблице приведено сравнение некоторых свойств.
Таблица 3.
Файловая система (URL) |
XPath |
|
Иерархия каталогов и файлов. |
Иерархия элементов и других узлов XML-документа. |
|
Файлы на каждом из уровней имеют уникальные имена. URL всегда идентифицирует один файл. |
Имена элементов на каждом уровне могут быть неуникальны. Шаблоны XPath соответствуют набору всех соответствующих элементов. |
|
Путь вычисляется относительно конкретного каталога, именуемого текущим каталогом. |
Путь вычисляется относительно конкретного узла, в запросе именуемого контекстом. |
В следующем фрагменте XML-документа представлена простая иерархия, которая будет использоваться для демонстрации некоторых основных возможностей XPath-запросов.
<authors>
<author>
<name>Victor Hugo</name>
<nationality>French</nationality>
</author>
<author period="classical">
<name>Sophocles</name>
<nationality>Greek</nationality>
</author>
<author>
<name>Leo Tolstoy</name>
<nationality>Russian</nationality>
</author>
<author>
<name>Alexander Pushkin</name>
<nationality>Russian</nationality>
</author>
<author period="classical">
<name>Plato</name>
<nationality>Greek</nationality>
</author>
</authors>
При исполнении XPath-запроса всегда имеется так называемый контекст исполнения, то есть текущая ветка, относительно которой производится поиск. Это сходно с активным каталогом при выполнении команды CD файловой системы. Как контекст XPath-запроса может использоваться любой узел XML-документа. В XSLT контекстом для запроса является узел, в данный момент обрабатываемый элементами <xsl:template> или <xsl:for-each>. При использовании XPath непосредственно из DOM вы определяете контекст, выполняя запрос из конкретного узла. Приведенные ниже примеры используют контекст корневого элемента XML-документа.
Основным понятием XPath является путь в XML-иерархии. Если выполнить приведенный ниже запрос, начиная с корневого элемента приведенного выше примера, этот запрос проходит по иерархии вплоть до элемента <name>.
authors/author/name
Запрос XPath распознает все элементы, соответствующие пути. Поскольку XSLT позволяет выделять определенные узлы дерева, его можно использовать в качестве простого поискового механизма.
Кроме описания пути, XPath может включать wildcards (групповые символы). Элемент с любым именем обозначается символом "*".
authors/*/name
Предыдущий запрос соответствует всем элементам name, но не требует, чтобы они находились в элементе <author>. Вот еще один пример, находящий элементы <name> и <nationality>.
authors/author/*
Ветвления пути могут быть описаны с помощью квадратных скобок. Следующий запрос ищет ветку элемента <author>, и означает, что рассматриваться должны только элементы <author> с дочерним nationality.
authors/author[nationality]/name
В запросе можно использовать операторы сравнения. Следующий запрос возвращает имена русских авторов. Заметьте, что сравнения можно использовать только в квадратных скобках.
authors/author[nationality='Russian']/name
XML-атрибуты в запросе обозначаются символом "@" перед именем атрибута. Атрибут может проверяться как ветка основного пути, но запрос может и целенаправленно искать узлы атрибутов. Следующий пример возвращает авторов классического периода.
authors/author[@period="classical"]
Таблица 4.Операторы и специальные символы Xpath
Оператор |
Описание |
|
/ |
Выбирает дочерние элементы коллекции, находящейся слева от него. При использовании в начале шаблона означает поиск от корневого элемента. |
|
// |
Рекурсивный спуск; ищет указанный элемент на любой глубине. При использовании в начале шаблона означает рекурсивный поиск от корневого элемента. |
|
. |
Текущий контекст. |
|
* |
Wildcard, выбирает все элементы, независимо от имени. |
|
@ |
Атрибут; префикс имени атрибута. При использовании без имени атрибута выбирает все атрибуты, независимо от их имени. |
|
: |
Сепаратор пространств имен. Отделяет префикс пространства имен от имени элемента или атрибута. |
|
( ) |
Группирует операции для явного задания очередности. |
|
[ ] |
Накладывает фильтр. 2. Используется для индексации коллекции |
|
+ |
Сложение. |
|
- |
Вычитание. |
|
div |
Деление с плавающей точкой (согласно IEEE 754). |
|
* |
Умножение. |
|
mod |
Возвращает остаток при делении с остатком. |
Размещено на Allbest.ru
Подобные документы
Описание пакета прикладной программы Net Beans 8.1. Разработка пользовательского интерфейса апплета. Создание рамочных окон на базе фреймов библиотеки java.swing. Изменение цвета текстовых данных. Проектирование и создание инфологической модели апплета.
контрольная работа [1,8 M], добавлен 11.07.2016Описание языков программирования Java и JavaFX. Среда разработки NetBeans и класс численных методов. Архитектура и принцип работы апплета с понятным пользовательским интерфейсом. Разработка алгоритма программы на примере модели межвидовой конкуренции.
курсовая работа [1023,2 K], добавлен 19.09.2012Расширяемый язык разметки XML. Описание типа документа DTD. Значение XML и платформы Java. Обзор стандартных анализаторов DOM и SAX. Технология Java Servlet, Java Server Pages (JSP), JavaBeans. Общая функциональность программного продукта. Модель данных.
курсовая работа [422,0 K], добавлен 21.02.2009Разработка Java-апплета, имеющего возможность обращения к локальной файловой системе при предоставлении соответствующих прав доступа. Упаковка апплета в архивный JAR-файл для его подписания электронной цифровой подписью, создание ключей и сертификата.
курсовая работа [540,2 K], добавлен 08.06.2011Элементы ActiveX - результат повторной попытки фирмы Microsoft разработать модель мобильного кода. Создание документов со связыванием и внедрением объектов. Использование сертификатов Authenticode для шифрования и добавления криптографических подписей.
курсовая работа [97,5 K], добавлен 24.05.2009Разработка технологии и средств реализации Java-приложения, сокращающих трудоемкость создания и гибкость модификации интерфейса пользователя. Использование XML-документов для описания внешнего представления, элементов управления и событий экранных форм.
дипломная работа [2,8 M], добавлен 19.08.2011Разработка графического редактора для рисования двухмерной и трехмерной графики, используя язык программирования Java и интерфейсы прикладного программирования Java 2D и Java 3D. Создание графического редактора 3D Paint. Основные методы класса Graphics.
курсовая работа [197,5 K], добавлен 19.11.2009Web-дизайн, web-страница, основы строения сайта. Текстовые редакторы для разработки Web приложений. Стандартные средства разработки для Unix систем. Профессиональные среды разработки и их ответвления. Визуальные редакторы для разработчиков Web.
курсовая работа [1,4 M], добавлен 12.08.2015Описание программного обеспечения для разработки Интернет-магазина. Установка программы WYSIWYG Web Builder v3.2.0. Создание структурного макета Интернет-магазина. Проектирование главной страницы с перечнем товарных наименований (на примере TV.html).
курсовая работа [4,0 M], добавлен 30.11.2011Возможности использования Word для создания web-страницы. Использование таблицы и шаблонов оформления документа. Создание гиперссылок и закладок в Word. Обзор визуальных и текстовых редакторов для верстки веб-страниц. Веб-презентация в PowerPoint.
реферат [312,6 K], добавлен 06.04.2010