Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java1.docx
Скачиваний:
8
Добавлен:
17.04.2019
Размер:
193.35 Кб
Скачать

Пространство имен

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

<префикс: имя_тега xmlns: префикс = “Адрес_URL”>

Адрес_URL – это значение атрибута xmlns, не имеющего ни какого значения к определению префикса. Он может не соответствовать ни какому действительному адресу.

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

Пример использования пространства имен:

<?xml version = “1.0”?>

<my: fruits xmlns: my = “http://my.xml.com”>

<my: fruit my: state = “UK”>

<my: name>Apple</my: name>

<my: price>7.77</price>

<my: amount>100</my: amount>

</my: ifruit>

</my ifruit my: state = “USA”>

<my:name>Orange</my: name>

<my:price>5.55</my: price>

<my: amount>50</my: amount>

</my:fruit>

</my:fruits>

В одном и том же XML-документе может быть несколько пространств имен.

Схемы xml

C мая 2001 года структуру XML-документа принято описывать на языке описания схем XSD. На этом языке записываются схемы XML, определяются элементы документов XML. Схема XML представляет собой также XML-документ. Его элементы называются компоненты для отличия от элементов описываемого XML. Корневой элемент схемы называется <schema>. Компоненты схемы описывают элементы XML и определяют типы этих элементов.

Типы бывают простыми: (string, long, double) и сложными (определяются компонентом ComplexType).

Пример схемы для документа XML:

<?xml version = “1.0”?>

<xsd: shema xml ns: xsd = “http//www.w3.org/2001/XML schema”>

<xsd: element name = “fruits”>

<xsd: ComplexType>

<xsd: element name = “fruit”>

<xsd: ComplexType>

<xsd: attribute name = “state” type = “xsd: string”/>

<xsd: sequence>

<xsd: element name = “name” type = “xsd: string”/>

<xsd: element name = “price” type = “xsd: float”/>

<xsd: element name = “amount” type = “xsd: integer”/>

</xsd: sequence>

</xsd: ComplexType>

</xsd: element>

</xsd: ComplexType>

</xsd: element>

</xsd: schema>

Код примера как и обычный XML-документ начинается с объявления XML. Затем определяется стандартное пространство имен для схемы XML. Оно имеет префикс xsd. Элементы используются в описываемом документе XML определяются компонентом <element>. Атрибуты элемента компонентом <attribute>. Тип элемента считается сложным если в элемент вложены другие элементы (И, ИЛИ в открывающемся теге есть атрибуты). Сложный тип определяется компонентом <ComplexType>. Компонент <sequence> применяется в том случае, когда перечисляемые элементы должны записываться в документе в определенном порядке.

Архитектуры распределенных приложений. Web-сервисы

Простейшей архитектурой распределенного приложения является архитектура клиент-сервер. Серверная часть оказывает услуг, клиентская их использует. В архитектуре клиент-сервер важно правильно распределить нагрузку между клиентом и сервером. Можно сделать клиента “тонким”, только отображающий результаты запроса. Это удобно для клиента (дешевый компьютер, простое ПО), но не удобно для “толстого” сервера (большая нагрузка, вся обработка данных). Толстый сервер трудно модернизировать, наращивать его мощность. Можно наоборот сделать клиента “толстым”, выполняющим всю обработку результатов запроса, а сервер “тонким”, только рассылающим всю необходимую информацию. В этом случае для клиентов требуется дорогие ПК и дорогое ПО. Чтобы избавиться от недостатков архитектуры клиент-сервер используются дополнительные программы для обработки данных. Их выделяют в отдельный (промежуточный middleware) слой ПО.

Распределенное приложение становиться трехслойным. В технологии JAVA промежуточный слой обычно реализован сервером приложений (JBOSS, IBN, WEB Sphere, и т.д.). В технологии JAVA промежуточный слой делится на две части: web-слой (сервлеты, jsp-страницы), EJB-страницы (EJB-компоненты). Количество слоев можно увеличивать, но важнее установить такую связь, между компонентами распределенного приложения. Компоненты распределенного приложения созданы на основе сокетов RMI и CORBA-технологии, тесно связаны с платформой и выбраны технологии. В этом случае горят о тесно связанных (tighty compled) распределенных приложениях. Распределенные приложения, компоненты которого могут работать на разных платформах и заменять друг друга называются слабосвязанные (loosely compled). Создатели web-services решили, что web-услуги будут предоставляться в рамках слабосвязанных приложений. В этих целях они решили использовать общие для всех платформ средства языка HTML и протокол HTTP. Однако, оказалось что средств HTML недостаточно для описания вызовов распределенных процедур и методов. Выход был найден в использовании языка XML. XML используется на всех платформах, документы XML легко передаются по сети в виде текстовых файлов с расширением *.xml. Таким образом web-services услуги предоставленные интернет с использованием языка XML и протоколом HTTP. При этом обмен информации между клиентом и сервером осуществляется в виде html-документов. Web-service (web-служба) – компонент распределенной системы реализующих web-services услуг.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]