Class ExtendedBinding

java.lang.Object
org.exolab.castor.builder.binding.xml.Binding
org.exolab.castor.builder.binding.ExtendedBinding
All Implemented Interfaces:
Serializable

public final class ExtendedBinding extends Binding
This class adds the necessary logic to a Binding Object to bring the gap between the XML Schema Object Model and the Binding File. It queries the Binding Object to retrieve the the associated ComponentBinding.

An "XPath like" representation of an XML Schema structure is built to lookup the component bindings in their storage structure. The algorithm used to build the "XPath like" representation is summarized in the following example: Given the XML schema declaration:

        <xsd:element name="foo">
            <xsd:complextype>
                <xsd:attribute name="bar" type="xsd:string"/>
            </xsd:complextype>
        </xsd:element>
 
The path to identify the attribute 'bar' will be:
        /foo/@bar
 
The keywords complexType and group are used to identify respectively an XML Schema ComplexType and a Model Group definition.
Version:
$Revision: 7943 $ $Date: 2005-03-05 06:42:06 -0700 (Sat, 05 Mar 2005) $
Author:
Arnaud Blandin
See Also:
  • Field Details

  • Constructor Details

    • ExtendedBinding

      public ExtendedBinding()
      Default constructor.
      See Also:
  • Method Details

    • getComponentBindingType

      public ComponentBindingType getComponentBindingType(Annotated annotated)
      Returns the ComponentBinding that corresponds to the given Annotated XML Schema structure An Schema location will be built for the given Annotated XML schema structure.
      Parameters:
      annotated - the XML Schema annotated structure for which to query the Binding object for a ComponentBinding.
      Returns:
      the ComponentBinding that corresponds to the given Annotated XML Schema structure.
    • handleAutomaticNaming

      void handleAutomaticNaming(AutomaticNamingType type)
      Process automatic name conflict resolution section, and memorize definitions.
      Parameters:
      type - AutomaticNamingType instance
    • existsExclusion

      public boolean existsExclusion(String localName)
      Indicates whether an <exclude> element has been specified in a binding file for the given 'local name' of an element definition.
      Parameters:
      localName - 'local name' of an element definition
      Returns:
      True if an <exclude> element has been specified
    • getExclusion

      public Exclude getExclusion(String localName)
      Returns the Exclude instance for the element identified by the given local name.
      Parameters:
      localName - Local name for an element (definition).
      Returns:
      The Exclude instance.
    • existsForce

      public boolean existsForce(String localName)
      Indicates whether an <force> element has been specified in a binding file for the given 'local name' of an element definition.
      Parameters:
      localName - 'local name' of an element definition
      Returns:
      True if an <force> element has been specified
    • getForces

      public Set<String> getForces()
      Returns all <force> elements defined in the binding file.
      Returns:
      all <force> elements defined in the binding file