Class XmlSchemaGenerator<T,C,F,M>

java.lang.Object
com.sun.xml.bind.v2.schemagen.XmlSchemaGenerator<T,C,F,M>

public final class XmlSchemaGenerator<T,C,F,M> extends Object
Generates a set of W3C XML Schema documents from a set of Java classes.

A client must invoke methods in the following order:

  1. Create a new XmlSchemaGenerator
  2. Invoke add(com.sun.xml.bind.v2.model.core.ClassInfo<T, C>) methods, multiple times if necessary.
  3. Invoke write(javax.xml.bind.SchemaOutputResolver, com.sun.xml.bind.api.ErrorListener)
  4. Discard the XmlSchemaGenerator.
Author:
Ryan Shoemaker, Kohsuke Kawaguchi (kk@kohsuke.org)
  • Constructor Details

  • Method Details

    • add

      public void add(ClassInfo<T,C> clazz)
      Adds a new class to the list of classes to be written.

      A ClassInfo may have two namespaces --- one for the element name and the other for the type name. If they are different, we put the same ClassInfo to two XmlSchemaGenerator<T,C,F,M>.com.sun.xml.bind.v2.schemagen.XmlSchemaGenerator.Namespaces.

    • add

      public void add(ElementInfo<T,C> elem)
      Adds a new element to the list of elements to be written.
    • add

      public void add(EnumLeafInfo<T,C> envm)
    • add

      public void add(ArrayInfo<T,C> a)
    • add

      public void add(QName tagName, boolean isNillable, NonElement<T,C> type)
      Adds an additional element declaration.
      Parameters:
      tagName - The name of the element declaration to be added.
      type - The type this element refers to. Can be null, in which case the element refers to an empty anonymous complex type.
    • writeEpisodeFile

      public void writeEpisodeFile(XmlSerializer out)
      Writes out the episode file.
    • write

      public void write(SchemaOutputResolver resolver, ErrorListener errorListener) throws IOException
      Write out the schema documents.
      Throws:
      IOException
    • toString

      public String toString()
      Debug information of what's in this XmlSchemaGenerator.
      Overrides:
      toString in class Object
    • relativize

      protected static String relativize(String uri, String baseUri)
      Relativizes a URI by using another URI (base URI.)

      For example, relative("http://www.sun.com/abc/def","http://www.sun.com/pqr/stu") => "../abc/def"

      This method only works on hierarchical URI's, not opaque URI's (refer to the java.net.URI javadoc for complete definitions of these terms.

      This method will not normalize the relative URI.

      Returns:
      the relative URI or the original URI if a relative one could not be computed