Potrzebuję wygenerować wiele klas z mojego schematu XML (XSD) w pakiecie (.jar). Jak skonfigurować te klasy, aby można je było przekształcać w kategorie?Jak generować klasy z XSD implementujące serializację?
(używam Eclipse i JAX-B)
Potrzebuję wygenerować wiele klas z mojego schematu XML (XSD) w pakiecie (.jar). Jak skonfigurować te klasy, aby można je było przekształcać w kategorie?Jak generować klasy z XSD implementujące serializację?
(używam Eclipse i JAX-B)
Jeśli używasz XJC, ja polecam Ci do przeczytania tego odniesienia: JavaTM Architecture for XML Binding: JAXB RI Vendor Extensions Customizations:
trzeba dodać w swoim schemacie aditional przestrzeni nazw do definicji dodać XJC aditional znaczników:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc"
jaxb:version="1.0">
Następnie w tym węźle <xjc:serializable>
ciągu <jaxb:globalBindings>
:
<xs:annotation>
<xs:appinfo>
<jaxb:globalBindings generateIsSetMethod="true">
<xjc:serializable uid="12343"/>
</jaxb:globalBindings>
</xs:appinfo>
</xs:annotation>
Spowoduje to, że wszystkie konkretne klasy implementują interfejs Serializable. Można również zdefiniować wartość UUID wynikowych klas (jest to opcjonalny atrybut).
Znalazłem
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc"
jaxb:version="1.0"
>
<!-- FORCE ALL CLASSES IMPLEMENTS SERIALIZABLE -->
<annotation>
<appinfo>
<jaxb:globalBindings generateIsSetMethod="true">
<xjc:serializable uid="1"/>
</jaxb:globalBindings>
</appinfo>
</annotation>
....
</schema>
dokładną kopią [Jak wygenerować klasy Java, który implementuje interfejs Serializable z XSD przy użyciu JAXB?] (Http://stackoverflow.com/questions/1513972/how-to -generate-a-java-class-which-implements-serializable-interface-from-xsd-usi) –
@pascal: przepraszam, nie widziałem tego pytania przed – Topera
Bez problemu. Ale wciąż to dupek :) –