Module org.eclipse.persistence.sdo
Class SDOXSDHelperDelegate
java.lang.Object
org.eclipse.persistence.sdo.helper.delegates.SDOXSDHelperDelegate
- All Implemented Interfaces:
XSDHelper
,SDOXSDHelper
Purpose: Provides access to additional information when the Type or Property is defined by an XML Schema (XSD)..
Responsibilities:
- Define methods defines Types from an XSD.
- Generate methods an XSD from Types.
- Other Methods return null/false otherwise or if the information is unavailable.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addGlobalProperty
(QName qname, Property prop, boolean isElement) INTERNAL:buildAppInfoMap
(List appInfoElements) INTERNAL:define
(InputStream xsdInputStream, String schemaLocation) Define XML Schema as Types.Define XML Schema as Types.define
(Reader xsdReader, SchemaResolver schemaResolver) Define XML Schema as Types.Define the XML Schema as Types.define
(Source xsdSource, SchemaResolver schemaResolver) INTERNAL:Generate an XML Schema Declaration (XSD) from Types.Generate an XML Schema Declaration (XSD) from Types.generate
(List types, SchemaLocationResolver schemaLocationResolver) INTERNAL:getAppinfo
(Property property, String source) Return the content of the appinfo declared for this Property and source.getAppinfo
(Type type, String source) Return the appinfo declared for this Type and source.getGlobalProperty
(String uri, String propertyName, boolean isElement) Returns the Property defined by the named global element or attribute in the targetNamespace uri, or null if not found.getGlobalProperty
(QName qname, boolean isElement) INTERNAL:INTERNAL: Return the helperContext that this instance is associated with.getLocalName
(Property property) Returns the local name as declared in the XSD.getLocalName
(Type type) Returns the local name as declared in the XSD.getNamespaceURI
(Property property) Returns the namespace URI as declared in the XSD.getNamespaceURI
(Type type) Returns the namespace URI as declared in the XSD.getStringFromAppInfoElement
(Element appInfo) boolean
isAttribute
(Property property) Returns true if the property is declared as an attribute in the XSD.boolean
Returns true if the property is declared as an element in the XSD.boolean
Returns true if the Type is declared to contain mixed content.boolean
Indicates if this helper contains XSD information for the specified type.void
reset()
INTERNAL:void
setGlobalAttributes
(Map globalAttributes) Assign a map of properties representing global attributes keyed on QNamevoid
setGlobalElements
(Map globalElements) Assign a map of properties representing global elements keyed on QNamevoid
setHelperContext
(HelperContext helperContext) INTERNAL: Set the helperContext that this instance is associated with.
-
Constructor Details
-
SDOXSDHelperDelegate
-
-
Method Details
-
getLocalName
Returns the local name as declared in the XSD.- Specified by:
getLocalName
in interfaceXSDHelper
- Parameters:
type
- to return local name for.- Returns:
- the local name as declared in the XSD.
-
getLocalName
Returns the local name as declared in the XSD.- Specified by:
getLocalName
in interfaceXSDHelper
- Parameters:
property
- to return local name for.- Returns:
- the local name as declared in the XSD.
-
getNamespaceURI
Returns the namespace URI as declared in the XSD.- Specified by:
getNamespaceURI
in interfaceXSDHelper
- Parameters:
type
- to return namespace URI for.- Returns:
- the namespace URI as declared in the XSD.
-
getNamespaceURI
Returns the namespace URI as declared in the XSD.- Specified by:
getNamespaceURI
in interfaceXSDHelper
- Parameters:
property
- to return namespace URI for.- Returns:
- the namespace URI as declared in the XSD.
-
isAttribute
Returns true if the property is declared as an attribute in the XSD. Returns false if not known or for advanced cases. It is possible for both isAttribute and isElement to return false but they will not both return true.- Specified by:
isAttribute
in interfaceXSDHelper
- Parameters:
property
- to identify if an attribute.- Returns:
- true if the property is declared as an attribute in the XSD.
-
isElement
Returns true if the property is declared as an element in the XSD. Returns false if not known or for advanced cases. It is possible for both isAttribute and isElement to return false but they will not both return true. -
isMixed
Returns true if the Type is declared to contain mixed content. A DataObject's mixed content values are typically accessed via a Sequence. -
isXSD
Indicates if this helper contains XSD information for the specified type. -
getGlobalProperty
Returns the Property defined by the named global element or attribute in the targetNamespace uri, or null if not found.- Specified by:
getGlobalProperty
in interfaceXSDHelper
- Parameters:
uri
- The uri of the targetNamespace.propertyName
- The name of the global property.isElement
- is true for global elements, false for global attributes.- Returns:
- the Property defined by the named global element or attribute in the targetNamespace uri, or null if not found.
-
getGlobalProperty
Description copied from interface:SDOXSDHelper
INTERNAL:- Specified by:
getGlobalProperty
in interfaceSDOXSDHelper
- Parameters:
qname
-isElement
-- Returns:
-
getAppinfo
Return the appinfo declared for this Type and source. The appinfo start and end tags and content are returned. The xml namespace context is preserved in the appinfo element. If more than one appinfo with the same source is declared on the same Type their contents are concatenated.- Specified by:
getAppinfo
in interfaceXSDHelper
- Parameters:
type
- the type with the appinfo declarationsource
- the source of the appinfo declaration.- Returns:
- the appinfo declared for this Type and source.
-
getAppinfo
Return the content of the appinfo declared for this Property and source. If the property is defined by ref= the appinfo of the referenced element or attribute is included. The appinfo start and end tags and content are returned. The xml namespace context is preserved in the appinfo element. If more than one appinfo with the same source is declared on the same Type their contents are concatenated.- Specified by:
getAppinfo
in interfaceXSDHelper
- Parameters:
property
- the Property with the appinfo declarationsource
- the source of the appinfo declaration.- Returns:
- the appinfo declared for this Property and source.
-
define
Define the XML Schema as Types. The Types are available through TypeHelper and DataGraph getType() methods. Same as define(new StringReader(xsd), null)- Specified by:
define
in interfaceXSDHelper
- Parameters:
xsd
- the XML Schema.- Returns:
- the defined Types.
- Throws:
IllegalArgumentException
- if the Types could not be defined.
-
define
Define XML Schema as Types. The Types are available through TypeHelper and DataGraph getType() methods.- Specified by:
define
in interfaceXSDHelper
- Parameters:
xsdReader
- reader to an XML Schema.schemaLocation
- the URI of the location of the schema, used for processing relative imports and includes. May be null if not used.- Returns:
- the defined Types.
- Throws:
IllegalArgumentException
- if the Types could not be defined.
-
define
Define XML Schema as Types. The Types are available through TypeHelper and DataGraph getType() methods.- Parameters:
xsdReader
- reader to an XML Schema.schemaResolver
- the URI of the location of the schema, used for processing relative imports and includes. May be null if not used.- Returns:
- the defined Types.
- Throws:
IllegalArgumentException
- if the Types could not be defined.
-
define
Description copied from interface:SDOXSDHelper
INTERNAL:- Specified by:
define
in interfaceSDOXSDHelper
- Parameters:
xsdSource
-schemaResolver
-- Returns:
-
define
Define XML Schema as Types. The Types are available through TypeHelper and DataGraph getType() methods.- Specified by:
define
in interfaceXSDHelper
- Parameters:
xsdInputStream
- input stream to an XML Schema.schemaLocation
- the URI of the location of the schema, used for processing relative imports and includes. May be null if not used.- Returns:
- the defined Types.
- Throws:
IllegalArgumentException
- if the Types could not be defined.
-
generate
Generate an XML Schema Declaration (XSD) from Types. Same as generate(types, null);- Specified by:
generate
in interfaceXSDHelper
- Parameters:
types
- a List containing the Types- Returns:
- a String containing the generated XSD.
- Throws:
IllegalArgumentException
- if the XSD could not be generated.
-
generate
Generate an XML Schema Declaration (XSD) from Types. Round trip from SDO to XSD to SDO is supported. Round trip from XSD to SDO to XSD is not supported. Use the original schema if one exists instead of generating a new one, as the generated XSD validates a different set of documents than the original XSD. Generating an XSD does not affect the XSDHelper or the Types. The Types must all have the same URI. The result is a String containing the generated XSD. All Types referenced with the same URI will be generated in the XSD and the list will be expanded to include all types generated. Any Types referenced with other URIs will cause imports to be produced as appropriate. Imports will include a schemaLocation if a Map is provided with an entry of the form key=import target namespace, value=schemaLocation- Specified by:
generate
in interfaceXSDHelper
- Parameters:
types
- a List containing the TypesnamespaceToSchemaLocation
- map of target namespace to schema locations or null- Returns:
- a String containing the generated XSD.
- Throws:
IllegalArgumentException
- if the XSD could not be generated.
-
generate
Description copied from interface:SDOXSDHelper
INTERNAL:- Specified by:
generate
in interfaceSDOXSDHelper
- Parameters:
types
-schemaLocationResolver
-- Returns:
-
setGlobalAttributes
Assign a map of properties representing global attributes keyed on QName- Parameters:
globalAttributes
- a Map of global elements keyed on QName
-
setGlobalElements
Assign a map of properties representing global elements keyed on QName- Parameters:
globalElements
- a Map of global elements keyed on QName
-
buildAppInfoMap
INTERNAL:- Specified by:
buildAppInfoMap
in interfaceSDOXSDHelper
- Parameters:
appInfoElements
-- Returns:
-
reset
public void reset()Description copied from interface:SDOXSDHelper
INTERNAL:- Specified by:
reset
in interfaceSDOXSDHelper
-
getHelperContext
Description copied from interface:SDOXSDHelper
INTERNAL: Return the helperContext that this instance is associated with.- Specified by:
getHelperContext
in interfaceSDOXSDHelper
- Returns:
-
setHelperContext
Description copied from interface:SDOXSDHelper
INTERNAL: Set the helperContext that this instance is associated with.- Specified by:
setHelperContext
in interfaceSDOXSDHelper
- Parameters:
helperContext
-
-
getStringFromAppInfoElement
-
addGlobalProperty
INTERNAL:- Specified by:
addGlobalProperty
in interfaceSDOXSDHelper
- Parameters:
qname
-prop
-isElement
- Register the given property with the given qname.
-