public abstract class DOMStructure extends DOMStructure implements XMLStructure
XMLStructure
implementations that support the DOM XML representation and processing
mechanism.Modifier and Type | Class and Description |
---|---|
protected static class |
DOMStructure.NodeWrapper |
Modifier and Type | Field and Description |
---|---|
protected static Map |
implMap_
The mapping between the XML element namespace and localname and the
implementing java class name.
|
protected int |
state_
The state this
DOMStructure is currently in. |
static int |
STATE_CREATED
Identifies the state
CREATED . |
static int |
STATE_MARSHALED
Identifies the state
MARSHALED . |
static int |
STATE_UNINITIALIZED
Identifies the state
UNINITIALIZED . |
static int |
STATE_UNMARSHALED
Identifies the state
UNMARSHALED . |
Modifier | Constructor and Description |
---|---|
protected |
DOMStructure()
Creates a new instance of this
DOMStructure . |
protected |
DOMStructure(Node node)
Creates a new instance of this
DOMStructure with the specified
node. |
Modifier and Type | Method and Description |
---|---|
protected static void |
addBytesToElement(Element element,
byte[] bytes,
DOMCryptoContext context)
Appends a new text node with the Base64 encoded value of
bytes
to the given element . |
protected static void |
addBytesToElement(Element element,
InputStream bytes,
DOMCryptoContext context)
Appends a new text node with the Base64 encoded value read from
bytes to the given element . |
protected void |
clearMarshalling() |
protected static void |
clearMarshalling(DOMStructure structure) |
protected static byte[] |
getBytesFromElement(Element element)
Gets the Base64 decoded value form all text node children of
element . |
protected static InputStream |
getBytesFromElementStream(Element element)
Gets the Base64 decoded value form all text node children of
element and returns it as InputStream. |
protected List |
getChildStructures()
Returns the list of child structures of this
DOMStructure . |
protected String |
getChildStructureVersion() |
protected Node |
getHere() |
protected static String |
getImplClass(String nameSpace,
String elementName)
Get the implementing class for a specified XML element from the
implementing class mapping.
|
static DOMStructure |
getInstance(Node node,
DOMCryptoContext context)
Unmarshal a
DOMStructure from the given DOM representation. |
protected static DOMStructure |
getInstance(Node node,
DOMCryptoContext context,
String className)
Unmarshal a
DOMStructure from the given DOM representation. |
abstract String |
getLocalName()
Returns the local name of the represented XML element.
|
abstract String |
getNamespace()
Returns the namespace URI of the represented XML element.
|
Node |
getNode()
Returns the XML element currently represented.
|
protected DOMStructure |
getParentStructure() |
protected static DOMStructure |
getParentStructureOf(DOMStructure domstructure)
This method is necessary to be able to reduce the visibility of
getParentStructure() to protected and to be able to access the
parent of arbitrary DOMStructures in the body of classes inheriting from
DOMStructure. |
String |
getQualifiedName(String namespacePrefix)
Get the qualified name for the given namespace prefix and the XML element
represented by this XML
DOMStructure . |
static String |
getQualifiedName(String namespacePrefix,
String localName)
Get the qualified name for the given localname and namespace prefix.
|
protected boolean |
hasNSDeclAttrInScope(String nsPrefix,
String namespaceURI)
This Method is for legacy support only if DOMLevel3 is not supported.
|
boolean |
isFeatureSupported(String feature)
Indicates whether a specified feature is supported.
|
protected boolean |
isNSDeclInScope(String nsPrefix,
String namespaceURI)
Determines if the namespace declaration is already set on one of the parent
structures of this node.
|
Node |
marshal(DOMCryptoContext context,
Node parent,
Node nextSibling)
Marshal the DOM node representation of this
DOMStructure and
all its child DOMStructures . |
protected void |
marshalAttributes(DOMCryptoContext context,
Element parent)
Marshals the XML representation of all
Attributes
represented by this DOMStrucuture . |
protected Element |
marshalElement(DOMCryptoContext context,
Node parent,
Node nextSibling)
Marshals the XML representation of the
Element represented by this
DOMStructure and returns it. |
protected Attr |
marshalIDAttribute(DOMCryptoContext context,
Element parent)
Marshals the XML representation of an optional
Id -attribute
represented by this DOMStructure . |
protected static iaik.xml.crypto.dom.DOMStructure.ID |
newIDforLookUp(String uri) |
protected void |
putChildStructure(DOMStructure childStructure)
Put an unmarshalled child structure.
|
protected static void |
putImplClass(String nameSpace,
String elementName,
String implClassName)
Put implementing class in the XML element to implementing class mapping.
|
static void |
setBackToCompatibilityPrior1_14(boolean b)
There has been a bug in XSECT prior to 1.14 that caused the getHere()
function to return the parent element instead of the URI attribute (if any)
containing the "here()" function call.
|
protected void |
setNode(Node node)
Sets the node from/to which this DOMStructure was/is marshalled.
|
protected void |
setParentStructure(DOMStructure parentStructure) |
String |
toString() |
void |
unmarshal(DOMCryptoContext context)
Unmarshals this
DOMStructure from its XML representation. |
protected void |
unmarshalAttributes(NamedNodeMap attributes,
DOMCryptoContext context)
Unmarshal the given
attributes . |
protected void |
unmarshalElement(DOMCryptoContext context,
Element element)
Unmarshals the given
element . |
protected String |
unmarshalIDAttribute(NamedNodeMap attributes,
DOMCryptoContext context,
String tagName)
Unmarshals an
Id -attribute with the given tagName
from the given attributes . |
protected void |
unmarshalStructures(NodeList nodes,
DOMCryptoContext context)
Unmarshals
DOMStructure s from the given nodes . |
static DOMStructure |
wrapNode(Node node)
Returns the node wrapping the given node.
|
protected static final Map implMap_
public static final int STATE_UNINITIALIZED
UNINITIALIZED
.public static final int STATE_CREATED
CREATED
.public static final int STATE_MARSHALED
MARSHALED
.public static final int STATE_UNMARSHALED
UNMARSHALED
.protected int state_
DOMStructure
is currently in.protected DOMStructure()
DOMStructure
.protected DOMStructure(Node node)
DOMStructure
with the specified
node.node
- the nodeNullPointerException
- if node
is null
IllegalArgumentException
- if node
is not of type Element
protected static iaik.xml.crypto.dom.DOMStructure.ID newIDforLookUp(String uri)
protected static final void putImplClass(String nameSpace, String elementName, String implClassName)
nameSpace
- the namespace of the XML elementelementName
- the localname of the XML elementimplClassName
- the class name of the implementing java classprotected static final String getImplClass(String nameSpace, String elementName)
nameSpace
- the namespace of the XML elementelementName
- the localname of the XML elementpublic static DOMStructure getInstance(Node node, DOMCryptoContext context) throws MarshalException
DOMStructure
from the given DOM representation.node
- the Node
representing the DOMStrucuture
to
unmarshalcontext
- context information for unmarshalingDOMStrucuture
represented by the given DOM
Node
, or null
if there is no
implementation for this XMLStructureMarshalException
- if an unexpected exception occurs during unmarshalingprotected static DOMStructure getInstance(Node node, DOMCryptoContext context, String className) throws MarshalException
DOMStructure
from the given DOM representation.node
- the Node
representing the DOMStrucuture
to
unmarshalcontext
- context information for unmarshalingclassName
- the name of the class to be instancedDOMStrucuture
represented by the given DOM
Node
, or null
if there is no
implementation for this XMLStructureMarshalException
- if an unexpected exception occurs during unmarshalingpublic boolean isFeatureSupported(String feature)
javax.xml.crypto.XMLStructure
isFeatureSupported
in interface XMLStructure
isFeatureSupported
in class DOMStructure
feature
- the feature name (as an absolute URI)true
if the specified feature is supported,
false
otherwiseXMLStructure.isFeatureSupported(java.lang.String)
public final Node getNode()
getNode
in class DOMStructure
null
if no XML
representation has been marshaled yet.protected final void setNode(Node node) throws MarshalException
node
- the associated node.MarshalException
public abstract String getLocalName()
public abstract String getNamespace()
public static String getQualifiedName(String namespacePrefix, String localName)
namespacePrefix
- the namespace prefix (may be null
)localName
- the local nameprotected static void addBytesToElement(Element element, byte[] bytes, DOMCryptoContext context) throws MarshalException
bytes
to the given element
.element
- the element
to append the text nodebytes
- the bytes to be Base64 encodedcontext
- specifying wich linebreak to use
Base64OutputStream.setLineBreak(byte[])
.MarshalException
- if appending the bytes fails for any reasonprotected static void addBytesToElement(Element element, InputStream bytes, DOMCryptoContext context) throws MarshalException
bytes
to the given element
.element
- the element
to append the text nodebytes
- the InputStream
to read the bytes fromcontext
- specifying wich linebreak to use in the the property
"iaik.xml.crypto.base64.linebreak".
Base64OutputStream.setLineBreak(byte[])
,
DOMCryptoContext.setProperty(String, Object)
.MarshalException
- if adding the bytes fails for any reasonprotected static InputStream getBytesFromElementStream(Element element) throws MarshalException
element
and returns it as InputStream.element
- the Element
containing the Base64 encoded valueInputStream
to read the Base64 encoded value fromMarshalException
- if reading the bytes fails for any reasonprotected static byte[] getBytesFromElement(Element element) throws MarshalException
element
.element
- the Element
containing the Base64 encoded valueMarshalException
- if reading the bytes fails for any reasonpublic String getQualifiedName(String namespacePrefix)
DOMStructure
.namespacePrefix
- the namespace prefix (may be null
)public Node marshal(DOMCryptoContext context, Node parent, Node nextSibling) throws MarshalException
DOMStructure
and
all its child DOMStructures
.
context
- the DOMMarshalContext
holding context information about
the marshaling of this DOMStructure
parent
- where to place the marshalled nodenextSibling
- before wich to place the marshalled nodeDOMStrucuture
and
all its child DOMStructurues
MarshalException
- if the marshaling fails for any reasonprotected Element marshalElement(DOMCryptoContext context, Node parent, Node nextSibling) throws MarshalException
Element
represented by this
DOMStructure
and returns it.
This method is called by marshal(DOMCryptoContext, Node, Node)
.
context
- the marshal contextparent
- where to place the marshalled elementnextSibling
- before which to place the marshalled nodeElement
MarshalException
- if an exception occurs during marshalingprotected void marshalAttributes(DOMCryptoContext context, Element parent) throws MarshalException
Attributes
represented by this DOMStrucuture
.
This method is called by marshal(DOMCryptoContext, Node, Node)
.
If no namespace prefix is set in the context
for the namespace
of the Element
represented by this DOMStructure
an
namespace declaration is marshaled and returned. Otherwise, an empty list
is returned.
A subclass has to overwrite this method in order to marshal any additional attributes.
context
- the marshal contextparent
- the element is the parent of the attribute node created however, an
the attribute node is not a child of it's parent element. see XPath.MarshalException
- if an exception occurs during marshalingprotected boolean isNSDeclInScope(String nsPrefix, String namespaceURI) throws MarshalException
nsPrefix
- The namespcae prefix.namespaceURI
- The namespace uri.True
if the namespace prefix is in scope and
associated to the namespace uri.MarshalException
protected boolean hasNSDeclAttrInScope(String nsPrefix, String namespaceURI)
nsPrefix
- The namespcae prefix.namespaceURI
- The namespace uri.True
if the namespace prefix is in scope and
associated to the namespace uri.protected Attr marshalIDAttribute(DOMCryptoContext context, Element parent)
Id
-attribute
represented by this DOMStructure
.
This method is called by marshal(DOMCryptoContext, Node, Node)
.
A subclass has to overwrite this method in order to marshal an
Id
-attribute.
context
- the marshal contextparent
- the element is the parent of the attribute node created however, an
the attribute node is not a child of it's parent element. see XPath.Id
-attribute if any, otherwise
null
public void unmarshal(DOMCryptoContext context) throws MarshalException
DOMStructure
from its XML representation.
context
- the marshaling contextMarshalException
- if an exception occurs during marshalingprotected void unmarshalElement(DOMCryptoContext context, Element element) throws MarshalException
element
.
This method is called by unmarshal(DOMCryptoContext)
.
A subclass has to overwrite this method to perform any special unmarshaling required.
context
- the marshal contextelement
- the element to be unmarshalMarshalException
- if an exception occurs during unmarshalingprotected void unmarshalAttributes(NamedNodeMap attributes, DOMCryptoContext context) throws MarshalException
attributes
.
This method is called by unmarshal(DOMCryptoContext)
.
A subclass has to overwrite this method to perform any special unmarshaling required.
attributes
- the Attr
ibutes to unmarshalcontext
- the marshal contextMarshalException
- if an exception occurs during unmarshalingprotected String unmarshalIDAttribute(NamedNodeMap attributes, DOMCryptoContext context, String tagName) throws MarshalException
Id
-attribute with the given tagName
from the given attributes
.
This method has to be called for any Id
-attribute contained by
a subclass of this DOMStructure
.
attributes
- the Attr
ibutescontext
- the marshal contexttagName
- the name of the Attr
Id
-attributeMarshalException
- if an exception occurs during unmarshalingprotected void unmarshalStructures(NodeList nodes, DOMCryptoContext context) throws MarshalException
DOMStructure
s from the given nodes
.
This method is called by unmarshal(DOMCryptoContext)
.
This method calls getInstance(Node, DOMCryptoContext)
for every
Element
in the list of nodes
. If
getInstance(Node, DOMCryptoContext)
returns a
DOMStructure
putChildStructure(DOMStructure)
is
called with the returned DOMStructure
as parameter.
nodes
- the nodes to unmarshal fromcontext
- the marshal contextMarshalException
- if an exception occurs during marshalingprotected List getChildStructures()
DOMStructure
.
This method is called by marshal(DOMCryptoContext, Node, Node)
.
A subclass has to overwrite this method to return a list of
DOMStrucutres
represented by this subclass.
DOMStructure
s (may be empty, but never
null
)protected void putChildStructure(DOMStructure childStructure) throws MarshalException
This method is called by
unmarshalStructures(NodeList, DOMCryptoContext)
for every
unmarshalled child structure.
A subclass has to overwrite this method to store the given child structure in its the corresponding field.
childStructure
- the unmarshalled child structureMarshalException
protected void setParentStructure(DOMStructure parentStructure) throws MarshalException
MarshalException
protected static DOMStructure getParentStructureOf(DOMStructure domstructure)
getParentStructure()
to protected and to be able to access the
parent of arbitrary DOMStructures in the body of classes inheriting from
DOMStructure.protected DOMStructure getParentStructure()
DOMStructure
.public static DOMStructure wrapNode(Node node)
node
- the node to be wrapped.DOMStructure
that wraps the given node.protected static void clearMarshalling(DOMStructure structure)
protected void clearMarshalling()
public static void setBackToCompatibilityPrior1_14(boolean b)
DOMURIReference.getHere()
protected Node getHere()
Implements the here()
function for any DOMStructure, if it contains an {@link Attr
Attribute} URI this will be returned, otherwise the {@link Element}
node is returned.
protected String getChildStructureVersion()
© 2002-2005 IAIK, © 2004, 2006 - 2019 Stiftung SIC