Примечание: Я EclipseLink JAXB (MOXy) и являюсь членом JAXB 2 (JSR-222 ) экспертная группа.
Файл .episode генерируется компилятором XJC (XML Schema to Java). Это привязка схемы, которая связывает типы схемы с существующими классами. Это полезно, когда у вас есть одна XML-схема, которая импортируется другими схемами, поскольку она предотвращает повторное создание модели. Ниже приведен пример:
Product.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Product"
xmlns:tns="http://www.example.org/Product"
elementFormDefault="qualified">
<element name="product">
<complexType>
<sequence>
<element name="id" type="string"/>
<element name="name" type="string"/>
</sequence>
</complexType>
</element>
</schema>
Поскольку несколько XML-схем импортируют Product.xsd, мы можем использовать файлы эпизодов, чтобы классы, соответствующие Product.xsd, создавались только один раз.
xjc -d out -episode product.episode Product.xsd
ProductPurchaseRequest.xsd
Ниже приведен пример схемы XML, которая импортирует Product.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/ProductPurchaseRequest"
xmlns:tns="http://www.example.org/ProductPurchaseRequest"
xmlns:prod="http://www.example.org/Product"
elementFormDefault="qualified">
<import namespace="http://www.example.org/Product" schemaLocation="Product.xsd"/>
<element name="purchase-request">
<complexType>
<sequence>
<element ref="prod:product" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
</schema>
Когда мы генерируем классы из этой XML-схемы, мы ссылаемся на файл эпизода, который мы создали, когда генерировали классы Java из Product.xsd.
xjc -d out ProductPurchaseRequest.xsd -extension -b product.episode
ProductQuoteRequest.xsd
Ниже приведен другой пример схемы XML, которая импортирует Product.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/ProductQuoteRequest"
xmlns:tns="http://www.example.org/ProductQuoteRequest"
xmlns:prod="http://www.example.org/Product"
elementFormDefault="qualified">
<import namespace="http://www.example.org/Product" schemaLocation="Product.xsd"/>
<element name="quote">
<complexType>
<sequence>
<element ref="prod:product"/>
</sequence>
</complexType>
</element>
</schema>
Опять же, когда мы генерируем классы из этой схемы XML, мы ссылаемся на файл эпизода, который мы создали, когда генерировали классы Java из Product.xsd.
xjc -d out ProductQuoteRequest.xsd -extension -b product.episode
Для получения дополнительной информации