|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Следующие разделы описывают, как использовать примеры приложения, которые включаются в пакет RI JAXB. Пакет RI JAXB доступен от http://jaxb.java.net. Загрузите и установите пакет RI JAXB. Примеры располагаются в jaxb-ri-install/samples/ каталоге. Эти примеры демонстрируют и полагаются на функции ключа JAXB и понятия. Следуйте за этими процедурами в представленном порядке.
После чтения этого раздела следует чувствовать себя довольными достаточно JAXB, что Вы можете:
Этот документ описывает три набора примеров:
Основные и настраивают каталоги в качестве примера, содержат несколько основных файлов:
Следующие таблицы кратко описывают основное, настраивают, и Java к схеме примеры JAXB.
Таблица: Основные Примеры JAXB
| Имя в качестве примера | Описание |
|---|---|
| Демонстрирует, как изменить дерево контента Java. | |
| Неупорядочьте Проверяют | Демонстрирует, как включить проверке допустимости во время немаршалинга. |
Таблица: Настройте Примеры JAXB
| Имя в качестве примера | Описание |
|---|---|
| Настройте Встроенный | Демонстрирует, как настроить значение по умолчанию привязка JAXB при использовании встроенных аннотаций в XML-схеме. |
| Преобразователь типа данных | Иллюстрирует альтернативную, более краткую привязку XML определения simpleType типам данных Java, и подобен, чтобы Настроить Встроенный пример. |
| Внешний Настраивают | Иллюстрирует, как использовать внешний обязательный файл объявлений, чтобы передать обязательные настройки для схемы только для чтения к JAXB обязательный компилятор. |
| Имя в качестве примера | Описание |
|---|---|
| Создайте Упорядочивают | Демонстрирует, как использовать ObjectFactory class, чтобы создать дерево контента Java и упорядочить это к данным XML. Это также демонстрирует, как добавить контент к свойству JAXB List. |
| XmlAccessorOrder | Иллюстрирует, как использовать @XmlAccessorOrder и аннотации отображения @XmlType.propOrder в классах Java, чтобы управлять порядком, в котором контент XML упорядочивается или неупорядочивается по типу Java. |
| XmlAdapter | Иллюстрирует, как использовать интерфейс XmlAdapter и аннотация @XmlJavaTypeAdapter, чтобы обеспечить пользовательское отображение контента XML в и из HashMap (поле), которое использует interger (int) в качестве ключа и строки (String) как значение. |
| XmlAttribute | Иллюстрирует, как использовать аннотацию @XmlAttribute, чтобы определить свойство или поле, которое будет обработано как атрибут XML. |
| XmlRootElement | Иллюстрирует, как использовать аннотацию @XmlRootElement, чтобы определить имя элемента XML для типа XML-схемы соответствующего class. |
| Класс XmlSchemaType | Иллюстрирует, как использовать аннотацию @XmlSchemaType, чтобы настроить отображение свойства или поля к XML встроенный тип. |
| XmlType | Иллюстрирует, как использовать аннотацию @XmlType, чтобы отобразить class или тип enum к типу XML-схемы. |
JAXB XJC схема обязательный компилятор преобразовывает, или связывает, исходная XML-схема к ряду классов контента JAXB в языке программирования Java. Компилятор class, xjc, обеспечивается как: xjc.sh на Солярисе/Linux и xjc.bat на Windows в пакете RI JAXB. xjc class включается в JDK библиотека class (в tools.jar).
И xjc.sh и xjc.bat берут те же самые параметры командной строки. Можно вывести на экран быстрые инструкции использования, вызывая сценарии без любых опций, или с переключателем -help. Синтаксис следующие:
xjc [-options ...] <schema file/URL/dir/jar>... [-b >bindinfo<] ...
Если dir будет определен, то все файлы схемы в каталоге будут скомпилированы. Если jar будет определен,/META-INF/sun-jaxb.episode то обязательный файл будет скомпилирован.
Параметры командной строки xjc следующие:
Генератор Схемы JAXB, schemagen, создает файл схемы для каждого пространства имен, на которое ссылаются в Ваших классах Java. Генератор схемы может быть запущен при использовании соответствующего сценария оболочки schemagen в каталоге bin для Вашей платформы. Генератор схемы обрабатывает исходные файлы Java только. Если Ваши источники Java ссылаются на другие классы, те источники должны быть доступными от Вашей системной переменной окружения ПУТИ К КЛАССУ; иначе ошибки произойдут, когда схема будет сгенерирована. Нет никакого способа управлять именем сгенерированных файлов схемы.
Можно вывести на экран быстрые инструкции использования, вызывая сценарии без любых опций или при использовании опции -help. Синтаксис следующие:
schemagen [-d path]
[java-source-files]
Опция пути -d определяет расположение сгенерированного процессором, и javac - генерировал файлы class.
Когда Вы работаете, JAXB обязательный компилятор против XML-схемы po.xsd, используемой в основных примерах (Неупорядочьте Чтение, Измените, Упорядочивают, Неупорядочивают, Проверяют), JAXB, обязательный компилятор генерирует пакет Java под названием primer.po, содержащий классы, описанные в следующей таблице.
Таблица: полученные из схемы Классы JAXB в Основных Примерах
| Класс | Описание |
|---|---|
| primer/po/Items.java | Открытый интерфейс, который связывает со схемой complexType по имени Items. |
| primer/po/ObjectFactory.java | Общедоступный class, расширяющий com.sun.xml.bind.DefaultJAXBContextImpl; используемый, чтобы создать экземпляры указанных интерфейсов. Например, метод ObjectFactory createComment() инстанцирует объекта Comment. |
| primer/po/PurchaseOrderType.java | Открытый интерфейс, который связывает со схемой complexType по имени PurchaseOrderType. |
| primer/po/USAddress.java | Открытый интерфейс, который связывает со схемой complexType по имени USAddress. |
Эти классы и их определенная привязка к исходной XML-схеме для основных примеров описываются в следующей таблице.
Таблица: Привязка схемы к Java для Основных Примеров
| XML-схема | Привязка JAXB |
|---|---|
<xsd:schema xmlns:xsd= "http://www.w3.org/2001/XMLSchema"> |
|
<xsd:complexType
name="PurchaseOrderType">
<xsd:sequence>
<xsd:element
name="shipTo"
type="USAddress"/>
<xsd:element
name="billTo"
type="USAddress"/>
<xsd:element
ref="comment"
minOccurs="0"/>
<xsd:element
name="items"
type="Items"/>
</xsd:sequence>
<xsd:attribute
name="orderDate"
type="xsd:date"/>
</xsd:complexType>
|
PurchaseOrderType.java |
<xsd:complexType
name="USAddress">
<xsd:sequence>
<xsd:element
name="name"
type="xsd:string"/>
<xsd:element
name="street"
type="xsd:string"/>
<xsd:element
name="city"
type="xsd:string"/>
<xsd:element
name="state"
type="xsd:string"/>
<xsd:element
name="zip"
type="xsd:decimal"/>
</xsd:sequence>
<xsd:attribute
name="country"
type="xsd:NMTOKEN"
fixed="US"/>
</xsd:complexType>
|
USAddress.java |
<xsd:complexType
name="Items">
<xsd:sequence>
<xsd:element
name="item"
minOccurs="1"
maxOccurs="unbounded">
|
Items.java |
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="productName"
type="xsd:string"/>
<xsd:element
name="quantity">
<xsd:simpleType>
<xsd:restriction
base="xsd:positiveInteger">
<xsd:maxExclusive
value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element
name="USPrice"
type="xsd:decimal"/>
<xsd:element
ref="comment"
minOccurs="0"/>
<xsd:element
name="shipDate"
type="xsd:date"
minOccurs="0"/>
</xsd:sequence>
<xsd:attribute
name="partNum"
type="SKU"
use="required"/>
</xsd:complexType>
|
Items.ItemType |
</xsd:element> </xsd:sequence> </xsd:complexType> |
|
<!-- Stock Keeping Unit, a code for
identifying products -->
|
|
<xsd:simpleType
name="SKU">
<xsd:restriction
base="xsd:string">
<xsd:pattern
value="\d{3}-[A-Z]{2}"/>
</xsd:restriction>
</xsd:simpleType>
|
|
</xsd:schema> |
Следующие разделы кратко объясняют функции следующих отдельных классов, сгенерированных JAXB обязательный компилятор для примеров:
В Items.java:
В ObjectFactory.java:
Как пример, в этом случае, для Java соединяют интерфейсом с primer.po.Items.ItemType, ObjectFactory создает метод createItemsItemType().
В PurchaseOrderType.java:
В USAddress.java: