public class SchemaGenerator
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
CURRENT_VERSION
Generator version.
|
private IClassLocator |
m_classLocator
Locator for finding classes referenced by binding.
|
private org.w3c.dom.Document |
m_document
Document used for all schema definitions.
|
private java.lang.String |
m_indentSequence
Indentation sequence per level of nesting.
|
private boolean |
m_isAttributeQualified
Use qualified attributes default in schema flag.
|
private boolean |
m_isElementQualified
Use qualified elements default in schema flag.
|
private java.util.HashMap |
m_schemaMap
Map from namespaces to schemas.
|
private ObjectStack |
m_structureStack
Stack of structure definitions in progress (used to detect cycles).
|
private boolean |
m_verbose
Show verbose output flag.
|
private static java.util.HashMap |
s_objectTypeMap
Set of object types mapped to schema types.
|
private static java.util.HashMap |
s_primitiveTypeMap
Set of primitive types mapped to schema types.
|
static java.lang.String |
XML_URI
Fixed XML namespace.
|
static java.lang.String |
XMLNS_URI
Fixed XML namespace namespace.
|
private static java.lang.String |
XSD_URI
Schema namespace URI.
|
Constructor and Description |
---|
SchemaGenerator(java.util.ArrayList paths)
Constructor with only paths supplied.
|
SchemaGenerator(boolean verbose,
boolean equal,
boolean aqual,
java.util.ArrayList paths)
Constructor with settings specified.
|
Modifier and Type | Method and Description |
---|---|
private org.w3c.dom.Element |
addChildElement(org.w3c.dom.Element parent,
java.lang.String name)
Add child element with appropriate indentation.
|
private void |
addComment(org.w3c.dom.Element parent,
java.lang.String text)
Add comment with appropriate indentation.
|
private void |
defineEmptyStructureComponent(StructureElementBase comp,
org.w3c.dom.Element egroup,
org.w3c.dom.Element agroup)
Process a structure component (structure or collection element) with no
name and no child components.
|
private void |
defineList(java.util.ArrayList comps,
org.w3c.dom.Element egroup,
org.w3c.dom.Element agroup,
boolean mult)
Create the schema definition list for a binding component list.
|
private org.w3c.dom.Element |
defineNestedStructure(ContainerElementBase container,
org.w3c.dom.Element parent)
Create the schema definition for a nested structure.
|
private void |
defineStructureComponent(StructureElementBase comp,
org.w3c.dom.Element egroup,
org.w3c.dom.Element agroup,
boolean mult)
Process a structure component (structure or collection element) within a
list of child components.
|
void |
generate(BindingElement binding)
Process a binding definition for schema generation.
|
private void |
generateSchema(BindingElement binding)
Generate a schema from a binding using supplied classpaths.
|
DefinitionContext |
getDefinitions()
Get innermost containing definition context.
|
org.w3c.dom.Element[] |
getSchemas()
Get array of generated schemas.
|
private void |
indentForClose(org.w3c.dom.Element parent)
Generate indentation to proper depth for current item.
|
static void |
main(java.lang.String[] args)
Main method for running compiler as application.
|
void |
setAttributeQualified(boolean qual)
Set control flag for attribute qualified default schema.
|
void |
setElementQualified(boolean qual)
Set control flag for element qualified default schema.
|
void |
setVerbose(boolean verbose)
Set control flag for verbose processing reports.
|
private java.lang.String |
simpleClassName(java.lang.String cname)
Get simple class name.
|
private static java.lang.String CURRENT_VERSION
private static final java.lang.String XSD_URI
public static final java.lang.String XML_URI
public static final java.lang.String XMLNS_URI
private static java.util.HashMap s_objectTypeMap
private static java.util.HashMap s_primitiveTypeMap
private boolean m_verbose
private boolean m_isElementQualified
private boolean m_isAttributeQualified
private java.lang.String m_indentSequence
private java.util.HashMap m_schemaMap
private IClassLocator m_classLocator
private org.w3c.dom.Document m_document
private ObjectStack m_structureStack
public SchemaGenerator(java.util.ArrayList paths)
paths
- class paths to be checked for classes referenced by bindingspublic SchemaGenerator(boolean verbose, boolean equal, boolean aqual, java.util.ArrayList paths)
verbose
- report binding details and resultsequal
- use element form default qualified flagaqual
- use attribute form default qualified flagpaths
- class paths to be checked for classes referenced by bindingspublic void setVerbose(boolean verbose)
verbose
- report verbose information in processing bindings flagpublic void setElementQualified(boolean qual)
qual
- element qualified default schemas flagpublic void setAttributeQualified(boolean qual)
qual
- attribute qualified default schemas flagpublic org.w3c.dom.Element[] getSchemas()
private void indentForClose(org.w3c.dom.Element parent)
parent
- element to contain indented child itemprivate void addComment(org.w3c.dom.Element parent, java.lang.String text)
parent
- element to contain indented child itemtext
- comment textprivate org.w3c.dom.Element addChildElement(org.w3c.dom.Element parent, java.lang.String name)
parent
- element to contain indented child itemname
- child element namepublic DefinitionContext getDefinitions()
private void defineEmptyStructureComponent(StructureElementBase comp, org.w3c.dom.Element egroup, org.w3c.dom.Element agroup)
comp
- structure component to be processedegroup
- schema element to contain element definitionsagroup
- schema element to contain attribute definitionsprivate void defineStructureComponent(StructureElementBase comp, org.w3c.dom.Element egroup, org.w3c.dom.Element agroup, boolean mult)
comp
- structure component to be processedegroup
- schema element to contain element definitionsagroup
- schema element to contain attribute definitionsmult
- allow any number of occurrences of components flagprivate void defineList(java.util.ArrayList comps, org.w3c.dom.Element egroup, org.w3c.dom.Element agroup, boolean mult)
comps
- binding component listegroup
- schema element to contain element definitionsagroup
- schema element to contain attribute definitionsmult
- allow any number of occurrences of components flagprivate org.w3c.dom.Element defineNestedStructure(ContainerElementBase container, org.w3c.dom.Element parent)
container
- binding definition element containing nested structureparent
- schema element to hold the definitionprivate void generateSchema(BindingElement binding)
binding
- root element of bindingpublic void generate(BindingElement binding) throws JiBXException
binding
- root element of bindingJiBXException
- if error in generating the schemaprivate java.lang.String simpleClassName(java.lang.String cname)
cname
- class name with full package specificationpublic static void main(java.lang.String[] args)
args
- command line arguments