org.exolab.castor.builder.binding

Class ExtendedBinding

Implemented Interfaces:
java.io.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: 7305 $ $Date: 2005-03-05 06:42:06 -0700 (Sat, 05 Mar 2005) $
Author:
Arnaud Blandin
See Also:
Serialized Form

Field Summary

protected static String
ATTRIBUTE_PREFIX
Prefix used to identify an attribute.
static String
COMPLEXTYPE_ID
Prefix used to identify a complexType.
static String
ENUMTYPE_ID
Prefix used to identify an enumeration.
static String
GROUP_ID
Prefix used to identify a model group.
protected static String
PATH_SEPARATOR
Constants needed to create the XPath.
static String
SIMPLETYPE_ID
Prefix used to identity a simplyType.

Constructor Summary

ExtendedBinding()
Default constructor.

Method Summary

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.
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.
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.
Exclude
getExclusion(String localName)
Returns the Exclude instance for the element identified by the given local name.
Set
getForces()
Returns all <force> elements defined in the binding file.
(package private) void
handleAutomaticNaming(AutomaticNamingType type)
Process automatic name conflict resolution section, and memorize definitions.

Methods inherited from class org.exolab.castor.builder.binding.xml.Binding

addAttributeBinding, addAttributeBinding, addComplexTypeBinding, addComplexTypeBinding, addComponentBinding, addComponentBinding, addElementBinding, addElementBinding, addEnumBinding, addEnumBinding, addGroupBinding, addGroupBinding, addInclude, addInclude, addPackage, addPackage, addSimpleTypeBinding, addSimpleTypeBinding, enumerateAttributeBinding, enumerateComplexTypeBinding, enumerateComponentBinding, enumerateElementBinding, enumerateEnumBinding, enumerateGroupBinding, enumerateInclude, enumeratePackage, enumerateSimpleTypeBinding, getAttributeBinding, getAttributeBinding, getAttributeBindingCount, getAutomaticNaming, getComplexTypeBinding, getComplexTypeBinding, getComplexTypeBindingCount, getComponentBinding, getComponentBinding, getComponentBindingCount, getDefaultBindingType, getElementBinding, getElementBinding, getElementBindingCount, getEnumBinding, getEnumBinding, getEnumBindingCount, getGroupBinding, getGroupBinding, getGroupBindingCount, getInclude, getInclude, getIncludeCount, getNamingXML, getPackage, getPackage, getPackageCount, getSimpleTypeBinding, getSimpleTypeBinding, getSimpleTypeBindingCount, isValid, iterateAttributeBinding, iterateComplexTypeBinding, iterateComponentBinding, iterateElementBinding, iterateEnumBinding, iterateGroupBinding, iterateInclude, iteratePackage, iterateSimpleTypeBinding, marshal, marshal, removeAllAttributeBinding, removeAllComplexTypeBinding, removeAllComponentBinding, removeAllElementBinding, removeAllEnumBinding, removeAllGroupBinding, removeAllInclude, removeAllPackage, removeAllSimpleTypeBinding, removeAttributeBinding, removeAttributeBindingAt, removeComplexTypeBinding, removeComplexTypeBindingAt, removeComponentBinding, removeComponentBindingAt, removeElementBinding, removeElementBindingAt, removeEnumBinding, removeEnumBindingAt, removeGroupBinding, removeGroupBindingAt, removeInclude, removeIncludeAt, removePackage, removePackageAt, removeSimpleTypeBinding, removeSimpleTypeBindingAt, setAttributeBinding, setAttributeBinding, setAutomaticNaming, setComplexTypeBinding, setComplexTypeBinding, setComponentBinding, setComponentBinding, setDefaultBindingType, setElementBinding, setElementBinding, setEnumBinding, setEnumBinding, setGroupBinding, setGroupBinding, setInclude, setInclude, setNamingXML, setPackage, setPackage, setSimpleTypeBinding, setSimpleTypeBinding, unmarshalBinding, validate

Field Details

ATTRIBUTE_PREFIX

protected static final String ATTRIBUTE_PREFIX
Prefix used to identify an attribute.

COMPLEXTYPE_ID

public static final String COMPLEXTYPE_ID
Prefix used to identify a complexType.

ENUMTYPE_ID

public static final String ENUMTYPE_ID
Prefix used to identify an enumeration.

GROUP_ID

public static final String GROUP_ID
Prefix used to identify a model group.

PATH_SEPARATOR

protected static final String PATH_SEPARATOR
Constants needed to create the XPath.

SIMPLETYPE_ID

public static final String SIMPLETYPE_ID
Prefix used to identity a simplyType.

Constructor Details

ExtendedBinding

public ExtendedBinding()
Default constructor.
See Also:
java.lang.Object.Object()

Method Details

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

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

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.

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.

getForces

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

handleAutomaticNaming

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

Intalio Inc. (C) 1999-2008. All rights reserved http://www.intalio.com