Class SDOXSDHelperDelegator

java.lang.Object
org.eclipse.persistence.sdo.helper.delegates.AbstractHelperDelegator
org.eclipse.persistence.sdo.helper.delegates.SDOXSDHelperDelegator
All Implemented Interfaces:
XSDHelper, SDOXSDHelper

public class SDOXSDHelperDelegator extends AbstractHelperDelegator implements SDOXSDHelper

Purpose: Provides access to additional information when the Type or Property is defined by an XML Schema (XSD)..

Responsibilities:

  • Finds the appropriate SDOXSDHelperDelegate for the classLoader/application name and delegates work to that implementation of SDOXSDHelper.
  • 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.
  • Constructor Details

    • SDOXSDHelperDelegator

      public SDOXSDHelperDelegator()
    • SDOXSDHelperDelegator

      public SDOXSDHelperDelegator(HelperContext aContext)
  • Method Details

    • getLocalName

      public String getLocalName(Type type)
      Description copied from interface: XSDHelper
      Returns the local name as declared in the XSD.
      Specified by:
      getLocalName in interface XSDHelper
      Parameters:
      type - to return local name for.
      Returns:
      the local name as declared in the XSD. If type is one of the predefined SDO types, the result is undefined.
    • getLocalName

      public String getLocalName(Property property)
      Description copied from interface: XSDHelper
      Returns the local name as declared in the XSD.
      Specified by:
      getLocalName in interface XSDHelper
      Parameters:
      property - to return local name for.
      Returns:
      the local name as declared in the XSD.
    • getNamespaceURI

      public String getNamespaceURI(Type type)
      Description copied from interface: XSDHelper
      Returns the namespace URI as declared in the XSD. If the XSD has no namespace URI, then "" is returned.
      Specified by:
      getNamespaceURI in interface XSDHelper
      Parameters:
      type - to return namespace URI for
      Returns:
      the namespace URI as declared in the XSD.
    • getNamespaceURI

      public String getNamespaceURI(Property property)
      Description copied from interface: XSDHelper
      Returns the namespace URI as declared in the XSD. If the XSD has no namespace URI, then "" is returned.
      Specified by:
      getNamespaceURI in interface XSDHelper
      Parameters:
      property - to return namespace URI for.
      Returns:
      the namespace URI as declared in the XSD.
    • isAttribute

      public boolean isAttribute(Property property)
      Description copied from interface: XSDHelper
      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 interface XSDHelper
      Parameters:
      property - to identify if an attribute.
      Returns:
      true if the property is declared as an attribute in the XSD.
    • isElement

      public boolean isElement(Property property)
      Description copied from interface: XSDHelper
      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.
      Specified by:
      isElement in interface XSDHelper
      Parameters:
      property - to identify if an element.
      Returns:
      true if the property is declared as an element in the XSD.
    • isMixed

      public boolean isMixed(Type type)
      Description copied from interface: XSDHelper
      Returns true if the Type is declared to contain mixed content. A DataObject's mixed content values are typically accessed via a Sequence.
      Specified by:
      isMixed in interface XSDHelper
      Parameters:
      type - to identify if mixed content.
      Returns:
      true if the Type is declared to contain mixed content.
    • isXSD

      public boolean isXSD(Type type)
      Description copied from interface: XSDHelper
      Indicates if this helper contains XSD information for the specified type.
      Specified by:
      isXSD in interface XSDHelper
      Parameters:
      type - the type.
      Returns:
      true if this helper contains XSD information for the specified type.
    • getGlobalProperty

      public Property getGlobalProperty(String uri, String propertyName, boolean isElement)
      Description copied from interface: XSDHelper
      Returns the Property defined by the named global element or attribute in the targetNamespace uri, or null if not found. If the SDO name for a property is different than the XSD name, then only the XSD name is used for the lookup. Passing in null or "" for the uri parameter means that an element/attribute defined in a Schema with no target namespace will be returned.
      Specified by:
      getGlobalProperty in interface XSDHelper
      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

      public Property getGlobalProperty(QName qname, boolean isElement)
      Description copied from interface: SDOXSDHelper
      INTERNAL:
      Specified by:
      getGlobalProperty in interface SDOXSDHelper
      Parameters:
      qname -
      isElement -
      Returns:
    • getAppinfo

      public String getAppinfo(Type type, String source)
      Description copied from interface: XSDHelper
      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 interface XSDHelper
      Parameters:
      type - the type with the appinfo declaration
      source - the source of the appinfo declaration.
      Returns:
      the appinfo declared for this Type and source.
    • getAppinfo

      public String getAppinfo(Property property, String source)
      Description copied from interface: XSDHelper
      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 interface XSDHelper
      Parameters:
      property - the Property with the appinfo declaration
      source - the source of the appinfo declaration.
      Returns:
      the appinfo declared for this Property and source.
    • define

      public List define(String xsd)
      Description copied from interface: XSDHelper
      Define the XML Schema as Types. The Types are available through TypeHelper.getType(java.lang.String, java.lang.String) methods. Same as define(new StringReader(xsd), null)
      Specified by:
      define in interface XSDHelper
      Parameters:
      xsd - the XML Schema.
      Returns:
      the defined Types. Not all of the XML Schema types cause an SDO type to be defined (for example in case of duplicates), the returned list only includes the newly defined types.
    • define

      public List define(Reader xsdReader, String schemaLocation)
      Description copied from interface: XSDHelper
      Define XML Schema as Types. The Types are available through TypeHelper.getType(java.lang.String, java.lang.String) methods.
      Specified by:
      define in interface XSDHelper
      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. Not all of the XML Schema types cause an SDO type to be defined (for example in case of duplicates), the returned list only includes the newly defined types.
    • define

      public List define(Source xsdSource, SchemaResolver schemaResolver)
      Description copied from interface: SDOXSDHelper
      INTERNAL:
      Specified by:
      define in interface SDOXSDHelper
      Parameters:
      xsdSource -
      schemaResolver -
      Returns:
    • define

      public List define(InputStream xsdInputStream, String schemaLocation)
      Description copied from interface: XSDHelper
      Define XML Schema as Types. The Types are available through TypeHelper.getType(java.lang.String, java.lang.String) methods.
      Specified by:
      define in interface XSDHelper
      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. Not all of the XML Schema types cause an SDO type to be defined (for example in case of duplicates), the returned list only includes the newly defined types.
    • generate

      public String generate(List types)
      Description copied from interface: XSDHelper
      Generate an XML Schema Declaration (XSD) from Types. Same as generate(types, null);
      Specified by:
      generate in interface XSDHelper
      Parameters:
      types - a List containing the Types
      Returns:
      a String containing the generated XSD.
    • generate

      public String generate(List types, Map namespaceToSchemaLocation)
      Description copied from interface: XSDHelper
      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 interface XSDHelper
      Parameters:
      types - a List containing the Types
      namespaceToSchemaLocation - map of target namespace to schema locations or null
      Returns:
      a String containing the generated XSD.
    • generate

      public String generate(List types, SchemaLocationResolver schemaLocationResolver)
      Description copied from interface: SDOXSDHelper
      INTERNAL:
      Specified by:
      generate in interface SDOXSDHelper
      Parameters:
      types -
      schemaLocationResolver -
      Returns:
    • buildAppInfoMap

      public Map buildAppInfoMap(List appInfoElements)
      INTERNAL:
      Specified by:
      buildAppInfoMap in interface SDOXSDHelper
      Parameters:
      appInfoElements -
      Returns:
    • addGlobalProperty

      public void addGlobalProperty(QName qname, Property prop, boolean isElement)
      INTERNAL:
      Specified by:
      addGlobalProperty in interface SDOXSDHelper
      Parameters:
      qname -
      prop -
      isElement - Register the given property with the given qname.
    • getXSDHelperDelegate

      public SDOXSDHelperDelegate getXSDHelperDelegate()
    • reset

      public void reset()
      Description copied from interface: SDOXSDHelper
      INTERNAL:
      Specified by:
      reset in interface SDOXSDHelper