cos'è un file .episode in JAXB ..? Viene generato da JAXB o è un file di configurazione che manipoliamo per evitare la rigenerazione delle stesse classi da parte di JAXB ..?Che cos'è un file .episode ..?
risposta
Nota: Sono il lead EclipseLink JAXB (MOXy) e un membro del gruppo di esperti JAXB 2 (JSR-222).
Un file .episode viene generato dal compilatore XJC (XML Schema to Java). È un collegamento di schemi che associa i tipi di schema alle classi esistenti. È utile quando si ha uno schema XML che viene importato da altri schemi poiché impedisce la rigenerazione del modello. Di seguito è riportato un esempio:
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>
Poiché più schemi XML di importazione Product.xsd possiamo sfruttare i file episodio in modo che le classi corrispondenti alle Product.xsd vengono generate solo una volta.
xjc -d out -episode product.episode Product.xsd
ProductPurchaseRequest.xsd
Di seguito è un esempio di uno schema XML che importa 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>
Quando abbiamo generare le classi da questo schema XML si farà riferimento l'episodio file che abbiamo creato quando abbiamo generato classi Java da Product.xsd.
xjc -d out ProductPurchaseRequest.xsd -extension -b product.episode
ProductQuoteRequest.xsd
Qui di seguito è un altro esempio di uno schema XML che importa 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>
Anche in questo caso, quando si generano le classi di questo schema XML si farà riferimento al file episodio che abbiamo creato quando abbiamo generato classi Java da Product.xsd.
xjc -d out ProductQuoteRequest.xsd -extension -b product.episode
Per ulteriori informazioni
Apparentemente, sono per modular schema creation.
Ciò implica che i file stessi possono essere utilizzati sia come configuratore sia come vista generativa di un livello dati per l'elaborazione downstream. Sarebbe necessario un ulteriore contesto per determinare a quale oggetto si fa riferimento qui.
aggiungerò alcune curiosità.
- In realtà,
.episode
file sono solo normali file di collegamento (è per questo che lavorano conxjc -b
). - Possono essere generati con uno speciale plug-in integrato (è ciò che fa
-episode
). - Se inserito in un JAR sotto il percorso
META-INF/sun-jaxb.episode
, è possibile eseguirexjc b.xsd a.jar
- XJC analizzerà i file JAR per i file degli episodi, quindi utilizzerà automaticamente i file di rilegatura. - Tutta questa bellezza funziona bene con Maven (maven-jaxb2-plugin). Tuttavia, con la versione successiva è possibile utilizzare file di associazione da artefatti JAR anche senza episodi.
Solo un addon per la risposta, vorrei fornire un input su come evitare di avere file di .episode generato durante l'utilizzo di Maven-jaxb2-plugin
`<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.12.3</version>
<executions>
<execution>
<id>schema-conversion</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<schemaDirectory>src/main/schema/myschema</schemaDirectory>
<bindingDirectory>src/main/schema/myschema</bindingDirectory>
<bindingIncludes>
<include>binding_info.xjb</include>
</bindingIncludes>
<generateDirectory>src/main/java/</generateDirectory>
<episode>false</episode>
</configuration>
</execution>
</executions>
</plugin>`
<episode>false</episode>
farà sparire .
- 1. Che cos'è un file MDF?
- 2. Che cos'è un file jam?
- 3. Che cos'è un file .pubxml.user?
- 4. Che cos'è un file Android.mk
- 5. In che modo Perl sa che un file è binario?
- 6. Che cosa contiene un file oggetto?
- 7. Clojure che non richiede un file cljc
- 8. In che modo Linux esegue un file?
- 9. Che cos'è un file "shelved" Perforce?
- 10. autoestraente che estrae ed eseguire un file
- 11. Django che serve un file di download
- 12. Che cos'è un file .a (as libcrypto.a)?
- 13. Go - Che cos'è veramente un file multipart.File?
- 14. Che cos'è un file Mappa TypeScript?
- 15. PHP che legge efficacemente un file CSV
- 16. Che cos'è aprire un file in C?
- 17. Come verificare che un file sia vuoto?
- 18. Che cos'è un file pdf bcmap?
- 19. L'accesso a un file che viene scritto
- 20. Come creare un file JAR che include file DLL?
- 21. Trova gitignore file e riga che fa sì che un file venga ignorato da git
- 22. Attendi che un file venga creato con un timeout
- 23. Come verificare che un file sia caricato in un controller?
- 24. python - Importazione di un file che è un collegamento simbolico
- 25. verifica che un risultato sia un file di riproduzione ok
- 26. Evita che i contenuti di un file esistente vengano sovrascritti durante la scrittura su un file
- 27. Trova linee da un file che non sono presenti in un altro file
- 28. python mechanize - recupera un file da aspnetForm submitControl che attiva il download di un file
- 29. Come posso creare sia un file .lib che un file .exe in Visual C++?
- 30. Che cos'è il file .htaccess?
Questo non funziona in modo affidabile con 'maven-jaxb2-plugin', sebbene sia possibile fornire il file episodio, è necessario fornire anche il file dello schema originale. Citazione dalla guida dell'utente del plugin: si noti che JAXB deve ancora accedere agli schemi BOTH A e B durante la compilazione. È possibile utilizzare i cataloghi per fornire posizioni alternative degli schemi importati. –