Class ComplexSupportXSAnyTypeBinding
- Object
-
- AbstractComplexBinding
-
- XSAnyTypeBinding
-
- ComplexSupportXSAnyTypeBinding
-
- All Implemented Interfaces:
Binding
,ComplexBinding
public class ComplexSupportXSAnyTypeBinding extends XSAnyTypeBinding
A replacement forXSAnyTypeBinding
that adds support forComplexAttribute
and related behaviours.This binding that searches the substitution group of XSD element children to find properties of a complex attribute. This is necessary to support the GML property type pattern, in which a property (a property-type type) contains a property that is a member of a substitution group. gml:AttributeType is the canonical example of the property type pattern.
gml:FeaturePropertyType is an example of the property type pattern that has an explicit binding
FeaturePropertyTypeBinding
, but because an application schema may define more property types whose names are not known at compile time, a binding likeFeaturePropertyTypeBinding
cannot be written. This class exists to handle these application-schema-defined property types.This class supports the encoding of XML complexType with simpleContent through extraction of a simpleContent property, as well as encoding XML attributes stored in the UserData map.
- Author:
- Ben Caradoc-Davies, CSIRO Earth Science and Resource Engineering
-
-
Constructor Summary
Constructors Constructor Description ComplexSupportXSAnyTypeBinding(XSDIdRegistry idRegistry)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Element
encode(Object object, Document document, Element value)
Subclasses should override this method if need be, the default implementation returns value.List<Object[]>
getProperties(Object object, XSDElementDeclaration element)
Subclasses should override this method if need be, the default implementation returnsnull
.Object
getProperty(Object object, QName name)
Subclasses should override this method if need be, the default implementation returnsnull
.-
Methods inherited from class XSAnyTypeBinding
getExecutionMode, getTarget, getType, initialize, parse
-
Methods inherited from class AbstractComplexBinding
initializeChildContext
-
-
-
-
Constructor Detail
-
ComplexSupportXSAnyTypeBinding
public ComplexSupportXSAnyTypeBinding(XSDIdRegistry idRegistry)
-
-
Method Detail
-
getProperty
public Object getProperty(Object object, QName name) throws Exception
Description copied from class:AbstractComplexBinding
Subclasses should override this method if need be, the default implementation returnsnull
.- Specified by:
getProperty
in interfaceComplexBinding
- Overrides:
getProperty
in classAbstractComplexBinding
- Parameters:
object
- The object being encoded.name
- The name of the property to obtain.- Returns:
- The value of the property, or
null
. - Throws:
Exception
- See Also:
AbstractComplexBinding.getProperty(java.lang.Object, javax.xml.namespace.QName)
-
getProperties
public List<Object[]> getProperties(Object object, XSDElementDeclaration element) throws Exception
Description copied from class:AbstractComplexBinding
Subclasses should override this method if need be, the default implementation returnsnull
.Note that this method only needs to be implemented for schema types which are open-ended in which the contents are not specifically specified by the schema.
- Specified by:
getProperties
in interfaceComplexBinding
- Overrides:
getProperties
in classAbstractComplexBinding
- Parameters:
object
- the object being encoded.- Returns:
- A list of the properties for the object.
- Throws:
Exception
- See Also:
AbstractComplexBinding.getProperties(java.lang.Object, org.eclipse.xsd.XSDElementDeclaration)
-
encode
public Element encode(Object object, Document document, Element value) throws Exception
Description copied from class:AbstractComplexBinding
Subclasses should override this method if need be, the default implementation returns value.- Specified by:
encode
in interfaceComplexBinding
- Overrides:
encode
in classAbstractComplexBinding
- Parameters:
object
- The object being encoded.document
- The document containing the encoded element.value
- The object as encoded by the parent binding.- Returns:
- The element for the objcet being encoded, or
null
- Throws:
Exception
- See Also:
AbstractComplexBinding.encode(java.lang.Object, org.w3c.dom.Document, org.w3c.dom.Element)
-
-