Created
April 19, 2015 03:19
-
-
Save thjanssen/2afcb512dc3d13db73d6 to your computer and use it in GitHub Desktop.
Generate your JAXB classes in a second with xjc (http://www.thoughts-on-java.org/2014/01/generate-your-jaxb-classes-in-second.html)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 | |
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | |
// Any modifications to this file will be lost upon recompilation of the source schema. | |
// Generated on: 2014.01.13 at 07:38:24 PM CET | |
// | |
package blog.thoughts.on.java; | |
import javax.xml.bind.annotation.XmlAccessType; | |
import javax.xml.bind.annotation.XmlAccessorType; | |
import javax.xml.bind.annotation.XmlSchemaType; | |
import javax.xml.bind.annotation.XmlType; | |
import javax.xml.datatype.XMLGregorianCalendar; | |
/** | |
* <p>Java class for book complex type. | |
* | |
* <p>The following schema fragment specifies the expected content contained within this class. | |
* | |
* <pre> | |
* <complexType name="book"> | |
* <complexContent> | |
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> | |
* <sequence> | |
* <element ref="{}author" minOccurs="0"/> | |
* <element name="pages" type="{http://www.w3.org/2001/XMLSchema}int"/> | |
* <element name="publicationDate" type="{http://www.w3.org/2001/XMLSchema}dateTime" minOccurs="0"/> | |
* <element name="title" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> | |
* </sequence> | |
* </restriction> | |
* </complexContent> | |
* </complexType> | |
* </pre> | |
* | |
* | |
*/ | |
@XmlAccessorType(XmlAccessType.FIELD) | |
@XmlType(name = "book", propOrder = { | |
"author", | |
"pages", | |
"publicationDate", | |
"title" | |
}) | |
public class Book { | |
protected Author author; | |
protected int pages; | |
@XmlSchemaType(name = "dateTime") | |
protected XMLGregorianCalendar publicationDate; | |
protected String title; | |
/** | |
* Gets the value of the author property. | |
* | |
* @return | |
* possible object is | |
* {@link Author } | |
* | |
*/ | |
public Author getAuthor() { | |
return author; | |
} | |
/** | |
* Sets the value of the author property. | |
* | |
* @param value | |
* allowed object is | |
* {@link Author } | |
* | |
*/ | |
public void setAuthor(Author value) { | |
this.author = value; | |
} | |
/** | |
* Gets the value of the pages property. | |
* | |
*/ | |
public int getPages() { | |
return pages; | |
} | |
/** | |
* Sets the value of the pages property. | |
* | |
*/ | |
public void setPages(int value) { | |
this.pages = value; | |
} | |
/** | |
* Gets the value of the publicationDate property. | |
* | |
* @return | |
* possible object is | |
* {@link XMLGregorianCalendar } | |
* | |
*/ | |
public XMLGregorianCalendar getPublicationDate() { | |
return publicationDate; | |
} | |
/** | |
* Sets the value of the publicationDate property. | |
* | |
* @param value | |
* allowed object is | |
* {@link XMLGregorianCalendar } | |
* | |
*/ | |
public void setPublicationDate(XMLGregorianCalendar value) { | |
this.publicationDate = value; | |
} | |
/** | |
* Gets the value of the title property. | |
* | |
* @return | |
* possible object is | |
* {@link String } | |
* | |
*/ | |
public String getTitle() { | |
return title; | |
} | |
/** | |
* Sets the value of the title property. | |
* | |
* @param value | |
* allowed object is | |
* {@link String } | |
* | |
*/ | |
public void setTitle(String value) { | |
this.title = value; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
xjc -d src -p blog.thoughts.on.java schema.xsd | |
parsing a schema... | |
compiling a schema... | |
blog\thoughts\on\java\Author.java | |
blog\thoughts\on\java\Book.java | |
blog\thoughts\on\java\ObjectFactory.java |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.4-2 | |
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> | |
// Any modifications to this file will be lost upon recompilation of the source schema. | |
// Generated on: 2014.01.13 at 07:38:24 PM CET | |
// | |
package blog.thoughts.on.java; | |
import javax.xml.bind.JAXBElement; | |
import javax.xml.bind.annotation.XmlElementDecl; | |
import javax.xml.bind.annotation.XmlRegistry; | |
import javax.xml.namespace.QName; | |
/** | |
* This object contains factory methods for each | |
* Java content interface and Java element interface | |
* generated in the blog.thoughts.on.java package. | |
* <p>An ObjectFactory allows you to programatically | |
* construct new instances of the Java representation | |
* for XML content. The Java representation of XML | |
* content can consist of schema derived interfaces | |
* and classes representing the binding of schema | |
* type definitions, element declarations and model | |
* groups. Factory methods for each of these are | |
* provided in this class. | |
* | |
*/ | |
@XmlRegistry | |
public class ObjectFactory { | |
private final static QName _Author_QNAME = new QName("", "author"); | |
private final static QName _Book_QNAME = new QName("", "book"); | |
/** | |
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: blog.thoughts.on.java | |
* | |
*/ | |
public ObjectFactory() { | |
} | |
/** | |
* Create an instance of {@link Author } | |
* | |
*/ | |
public Author createAuthor() { | |
return new Author(); | |
} | |
/** | |
* Create an instance of {@link Book } | |
* | |
*/ | |
public Book createBook() { | |
return new Book(); | |
} | |
/** | |
* Create an instance of {@link JAXBElement }{@code <}{@link Author }{@code >}} | |
* | |
*/ | |
@XmlElementDecl(namespace = "", name = "author") | |
public JAXBElement<Author> createAuthor(Author value) { | |
return new JAXBElement<Author>(_Author_QNAME, Author.class, null, value); | |
} | |
/** | |
* Create an instance of {@link JAXBElement }{@code <}{@link Book }{@code >}} | |
* | |
*/ | |
@XmlElementDecl(namespace = "", name = "book") | |
public JAXBElement<Book> createBook(Book value) { | |
return new JAXBElement<Book>(_Book_QNAME, Book.class, null, value); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | |
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |
<xs:element name="author" type="author"/> | |
<xs:element name="book" type="book"/> | |
<xs:complexType name="author"> | |
<xs:sequence> | |
<xs:element name="firstName" type="xs:string" minOccurs="0"/> | |
<xs:element name="lastName" type="xs:string" minOccurs="0"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="book"> | |
<xs:sequence> | |
<xs:element ref="author" minOccurs="0"/> | |
<xs:element name="pages" type="xs:int"/> | |
<xs:element name="publicationDate" type="xs:dateTime" minOccurs="0"/> | |
<xs:element name="title" type="xs:string" minOccurs="0"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:schema> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Usage: xjc [-options ...] <schema file/URL/dir/jar> ... [-b <bindinfo>] ... | |
If dir is specified, all schema files in it will be compiled. | |
If jar is specified, /META-INF/sun-jaxb.episode binding file will be compiled. | |
Options: | |
-nv : do not perform strict validation of the input schema(s) | |
-extension : allow vendor extensions - do not strictly follow the | |
Compatibility Rules and App E.2 from the JAXB Spec | |
-b <file/dir> : specify external bindings files (each <file> must have its own -b) | |
If a directory is given, **/*.xjb is searched | |
-d <dir> : generated files will go into this directory | |
-p <pkg> : specifies the target package | |
-httpproxy <proxy> : set HTTP/HTTPS proxy. Format is [user[:password]@]proxyHost:proxyPort | |
-httpproxyfile <f> : Works like -httpproxy but takes the argument in a file to protect password | |
-classpath <arg> : specify where to find user class files | |
-catalog <file> : specify catalog files to resolve external entity references | |
support TR9401, XCatalog, and OASIS XML Catalog format. | |
-readOnly : generated files will be in read-only mode | |
-npa : suppress generation of package level annotations (**/package-info.java) | |
-no-header : suppress generation of a file header with timestamp | |
-target (2.0|2.1) : behave like XJC 2.0 or 2.1 and generate code that doesnt use any 2.2 features. | |
-encoding <encoding> : specify character encoding for generated source files | |
-enableIntrospection : enable correct generation of Boolean getters/setters to enable Bean Introspection apis | |
-contentForWildcard : generates content property for types with multiple xs:any derived elements | |
-xmlschema : treat input as W3C XML Schema (default) | |
-relaxng : treat input as RELAX NG (experimental,unsupported) | |
-relaxng-compact : treat input as RELAX NG compact syntax (experimental,unsupported) | |
-dtd : treat input as XML DTD (experimental,unsupported) | |
-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) | |
-verbose : be extra verbose | |
-quiet : suppress compiler output | |
-help : display this help message | |
-version : display version information | |
-fullversion : display full version information | |
Extensions: | |
-Xinject-code : inject specified Java code fragments into the generated code | |
-Xlocator : enable source location support for generated code | |
-Xsync-methods : generate accessor methods with the 'synchronized' keyword | |
-mark-generated : mark the generated code as @javax.annotation.Generated | |
-episode <FILE> : generate the episode file for separate compilation |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment