Class XMLSignatureFactory
- java.lang.Object
-
- javax.xml.crypto.dsig.XMLSignatureFactory
public abstract class XMLSignatureFactory extends Object
A factory for creating XMLSignature
objects from scratch or for unmarshalling an XMLSignature
object from a corresponding XML representation.
XMLSignatureFactory Type
Each instance of XMLSignatureFactory
supports a specific XML mechanism type. To create an XMLSignatureFactory
, call one of the static getInstance
methods, passing in the XML mechanism type desired, for example:
XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM");
The objects that this factory produces will be based on DOM and abide by the DOM interoperability requirements as defined in the DOM Mechanism Requirements section of the API overview. See the Service Providers section of the API overview for a list of standard mechanism types.
XMLSignatureFactory
implementations are registered and loaded using the Provider
mechanism. For example, a service provider that supports the DOM mechanism would be specified in the Provider
subclass as:
put("XMLSignatureFactory.DOM", "org.example.DOMXMLSignatureFactory");
An implementation MUST minimally support the default mechanism type: DOM.
Note that a caller must use the same XMLSignatureFactory
instance to create the XMLStructure
s of a particular XMLSignature
that is to be generated. The behavior is undefined if XMLStructure
s from different providers or different mechanism types are used together.
Also, the XMLStructure
s that are created by this factory may contain state specific to the XMLSignature
and are not intended to be reusable.
Creating XMLSignatures from scratch
Once the XMLSignatureFactory
has been created, objects can be instantiated by calling the appropriate method. For example, a Reference
instance may be created by invoking one of the newReference
methods.
Unmarshalling XMLSignatures from XML
Alternatively, an XMLSignature
may be created from an existing XML representation by invoking the unmarshalXMLSignature
method and passing it a mechanism-specific XMLValidateContext
instance containing the XML content:
DOMValidateContext context = new DOMValidateContext(key, signatureElement); XMLSignature signature = factory.unmarshalXMLSignature(context);Each
XMLSignatureFactory
must support the required XMLValidateContext
types for that factory type, but may support others. A DOM XMLSignatureFactory
must support DOMValidateContext
objects. Signing and marshalling XMLSignatures to XML
EachXMLSignature
created by the factory can also be marshalled to an XML representation and signed, by invoking the sign
method of the XMLSignature
object and passing it a mechanism-specific XMLSignContext
object containing the signing key and marshalling parameters (see DOMSignContext
). For example: DOMSignContext context = new DOMSignContext(privateKey, document); signature.sign(context);Concurrent Access
The static methods of this class are guaranteed to be thread-safe. Multiple threads may concurrently invoke the static methods defined in this class with no ill effects.
However, this is not true for the non-static methods defined by this class. Unless otherwise documented by a specific provider, threads that need to access a single XMLSignatureFactory
instance concurrently should synchronize amongst themselves and provide the necessary locking. Multiple threads each manipulating a different XMLSignatureFactory
instance need not synchronize.
- Since:
- 1.6
Constructor Summary
Modifier | Constructor | Description |
---|---|---|
protected | XMLSignatureFactory() | Default constructor, for invocation by subclasses. |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
static XMLSignatureFactory | getInstance() | Returns an |
static XMLSignatureFactory | getInstance(String mechanismType) | Returns an |
static XMLSignatureFactory | getInstance(String mechanismType,
String provider) | Returns an |
static XMLSignatureFactory | getInstance(String mechanismType,
Provider provider) | Returns an |
KeyInfoFactory | getKeyInfoFactory() | Returns a |
String | getMechanismType() | Returns the type of the XML processing mechanism and representation supported by this |
Provider | getProvider() | Returns the provider of this |
abstract URIDereferencer | getURIDereferencer() | Returns a reference to the |
abstract boolean | isFeatureSupported(String feature) | Indicates whether a specified feature is supported. |
abstract CanonicalizationMethod | newCanonicalizationMethod(String algorithm,
C14NMethodParameterSpec params) | Creates a |
abstract CanonicalizationMethod | newCanonicalizationMethod(String algorithm,
XMLStructure params) | Creates a |
abstract DigestMethod | newDigestMethod(String algorithm,
DigestMethodParameterSpec params) | Creates a |
abstract Manifest | newManifest(List<? extends Reference> references) | Creates a |
abstract Manifest | newManifest(List<? extends Reference> references,
String id) | Creates a |
abstract Reference | newReference(String uri,
DigestMethod dm) | Creates a |
abstract Reference | newReference(String uri,
DigestMethod dm,
List<? extends Transform> transforms,
String type,
String id) | Creates a |
abstract Reference | newReference(String uri,
DigestMethod dm,
List<? extends Transform> transforms,
String type,
String id,
byte[] digestValue) | Creates a |
abstract Reference | newReference(String uri,
DigestMethod dm,
List<? extends Transform> appliedTransforms,
Data result,
List<? extends Transform> transforms,
String type,
String id) | Creates a |
abstract SignatureMethod | newSignatureMethod(String algorithm,
SignatureMethodParameterSpec params) | Creates a |
abstract SignatureProperties | newSignatureProperties(List<? extends SignatureProperty> properties,
String id) | Creates a |
abstract SignatureProperty | newSignatureProperty(List<? extends XMLStructure> content,
String target,
String id) | Creates a |
abstract SignedInfo | newSignedInfo(CanonicalizationMethod cm,
SignatureMethod sm,
List<? extends Reference> references) | Creates a |
abstract SignedInfo | newSignedInfo(CanonicalizationMethod cm,
SignatureMethod sm,
List<? extends Reference> references,
String id) | Creates a |
abstract Transform | newTransform(String algorithm,
TransformParameterSpec params) | Creates a |
abstract Transform | newTransform(String algorithm,
XMLStructure params) | Creates a |
abstract XMLObject | newXMLObject(List<? extends XMLStructure> content,
String id,
String mimeType,
String encoding) | Creates an |
abstract XMLSignature | newXMLSignature(SignedInfo si,
KeyInfo ki) | Creates an |
abstract XMLSignature | newXMLSignature(SignedInfo si,
KeyInfo ki,
List<? extends XMLObject> objects,
String id,
String signatureValueId) | Creates an |
abstract XMLSignature | unmarshalXMLSignature(XMLValidateContext context) | Unmarshals a new |
abstract XMLSignature | unmarshalXMLSignature(XMLStructure xmlStructure) | Unmarshals a new |
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Constructor Detail
XMLSignatureFactory
protected XMLSignatureFactory()
Default constructor, for invocation by subclasses.
Method Detail
getInstance
public static XMLSignatureFactory getInstance(String mechanismType)
Returns an XMLSignatureFactory
that supports the specified XML processing mechanism and representation type (ex: "DOM").
This method uses the standard JCA provider lookup mechanism to locate and instantiate an XMLSignatureFactory
implementation of the desired mechanism type. It traverses the list of registered security Provider
s, starting with the most preferred Provider
. A new XMLSignatureFactory
object from the first Provider
that supports the specified mechanism is returned.
Note that the list of registered providers may be retrieved via the Security.getProviders()
method.
- Implementation Note:
- The JDK Reference Implementation additionally uses the
jdk.security.provider.preferred
Security
property to determine the preferred provider order for the specified algorithm. This may be different than the order of providers returned bySecurity.getProviders()
. - Parameters:
-
mechanismType
- the type of the XML processing mechanism and representation. See the Service Providers section of the API overview for a list of standard mechanism types. - Returns:
- a new
XMLSignatureFactory
- Throws:
-
NullPointerException
- ifmechanismType
isnull
-
NoSuchMechanismException
- if noProvider
supports anXMLSignatureFactory
implementation for the specified mechanism - See Also:
Provider
getInstance
public static XMLSignatureFactory getInstance(String mechanismType, Provider provider)
Returns an XMLSignatureFactory
that supports the requested XML processing mechanism and representation type (ex: "DOM"), as supplied by the specified provider. Note that the specified Provider
object does not have to be registered in the provider list.
- Parameters:
-
mechanismType
- the type of the XML processing mechanism and representation. See the Service Providers section of the API overview for a list of standard mechanism types. -
provider
- theProvider
object - Returns:
- a new
XMLSignatureFactory
- Throws:
-
NullPointerException
- ifprovider
ormechanismType
isnull
-
NoSuchMechanismException
- if anXMLSignatureFactory
implementation for the specified mechanism is not available from the specifiedProvider
object - See Also:
Provider
getInstance
public static XMLSignatureFactory getInstance(String mechanismType, String provider) throws NoSuchProviderException
Returns an XMLSignatureFactory
that supports the requested XML processing mechanism and representation type (ex: "DOM"), as supplied by the specified provider. The specified provider must be registered in the security provider list.
Note that the list of registered providers may be retrieved via the Security.getProviders()
method.
- Parameters:
-
mechanismType
- the type of the XML processing mechanism and representation. See the Service Providers section of the API overview for a list of standard mechanism types. -
provider
- the string name of the provider - Returns:
- a new
XMLSignatureFactory
- Throws:
-
NoSuchProviderException
- if the specified provider is not registered in the security provider list -
NullPointerException
- ifprovider
ormechanismType
isnull
-
NoSuchMechanismException
- if anXMLSignatureFactory
implementation for the specified mechanism is not available from the specified provider - See Also:
Provider
getInstance
public static XMLSignatureFactory getInstance()
Returns an XMLSignatureFactory
that supports the default XML processing mechanism and representation type ("DOM").
This method uses the standard JCA provider lookup mechanism to locate and instantiate an XMLSignatureFactory
implementation of the default mechanism type. It traverses the list of registered security Provider
s, starting with the most preferred Provider
. A new XMLSignatureFactory
object from the first Provider
that supports the DOM mechanism is returned.
Note that the list of registered providers may be retrieved via the Security.getProviders()
method.
- Returns:
- a new
XMLSignatureFactory
- Throws:
-
NoSuchMechanismException
- if noProvider
supports anXMLSignatureFactory
implementation for the DOM mechanism - See Also:
Provider
getMechanismType
public final String getMechanismType()
Returns the type of the XML processing mechanism and representation supported by this XMLSignatureFactory
(ex: "DOM").
- Returns:
- the XML processing mechanism type supported by this
XMLSignatureFactory
getProvider
public final Provider getProvider()
Returns the provider of this XMLSignatureFactory
.
- Returns:
- the provider of this
XMLSignatureFactory
newXMLSignature
public abstract XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki)
Creates an XMLSignature
and initializes it with the contents of the specified SignedInfo
and KeyInfo
objects.
- Parameters:
-
si
- the signed info -
ki
- the key info (may benull
) - Returns:
- an
XMLSignature
- Throws:
-
NullPointerException
- ifsi
isnull
newXMLSignature
public abstract XMLSignature newXMLSignature(SignedInfo si, KeyInfo ki, List<? extends XMLObject> objects, String id, String signatureValueId)
Creates an XMLSignature
and initializes it with the specified parameters.
- Parameters:
-
si
- the signed info -
ki
- the key info (may benull
) -
objects
- a list ofXMLObject
s (may be empty ornull
) -
id
- the Id (may benull
) -
signatureValueId
- the SignatureValue Id (may benull
) - Returns:
- an
XMLSignature
- Throws:
-
NullPointerException
- ifsi
isnull
-
ClassCastException
- if any of theobjects
are not of typeXMLObject
newReference
public abstract Reference newReference(String uri, DigestMethod dm)
Creates a Reference
with the specified URI and digest method.
- Parameters:
-
uri
- the reference URI (may benull
) -
dm
- the digest method - Returns:
- a
Reference
- Throws:
-
IllegalArgumentException
- ifuri
is not RFC 2396 compliant -
NullPointerException
- ifdm
isnull
newReference
public abstract Reference newReference(String uri, DigestMethod dm, List<? extends Transform> transforms, String type, String id)
Creates a Reference
with the specified parameters.
- Parameters:
-
uri
- the reference URI (may benull
) -
dm
- the digest method -
transforms
- a list ofTransform
s. The list is defensively copied to protect against subsequent modification. May benull
or empty. -
type
- the reference type, as a URI (may benull
) -
id
- the reference ID (may benull
) - Returns:
- a
Reference
- Throws:
-
ClassCastException
- if any of thetransforms
are not of typeTransform
-
IllegalArgumentException
- ifuri
is not RFC 2396 compliant -
NullPointerException
- ifdm
isnull
newReference
public abstract Reference newReference(String uri, DigestMethod dm, List<? extends Transform> transforms, String type, String id, byte[] digestValue)
Creates a Reference
with the specified parameters and pre-calculated digest value.
This method is useful when the digest value of a Reference
has been previously computed. See for example, the OASIS-DSS (Digital Signature Services) specification.
- Parameters:
-
uri
- the reference URI (may benull
) -
dm
- the digest method -
transforms
- a list ofTransform
s. The list is defensively copied to protect against subsequent modification. May benull
or empty. -
type
- the reference type, as a URI (may benull
) -
id
- the reference ID (may benull
) -
digestValue
- the digest value. The array is cloned to protect against subsequent modification. - Returns:
- a
Reference
- Throws:
-
ClassCastException
- if any of thetransforms
are not of typeTransform
-
IllegalArgumentException
- ifuri
is not RFC 2396 compliant -
NullPointerException
- ifdm
ordigestValue
isnull
newReference
public abstract Reference newReference(String uri, DigestMethod dm, List<? extends Transform> appliedTransforms, Data result, List<? extends Transform> transforms, String type, String id)
Creates a Reference
with the specified parameters.
This method is useful when a list of transforms have already been applied to the Reference
. See for example, the OASIS-DSS (Digital Signature Services) specification.
When an XMLSignature
containing this reference is generated, the specified transforms
(if non-null) are applied to the specified result
. The Transforms
element of the resulting Reference
element is set to the concatenation of the appliedTransforms
and transforms
.
- Parameters:
-
uri
- the reference URI (may benull
) -
dm
- the digest method -
appliedTransforms
- a list ofTransform
s that have already been applied. The list is defensively copied to protect against subsequent modification. The list must contain at least one entry. -
result
- the result of processing the sequence ofappliedTransforms
-
transforms
- a list ofTransform
s that are to be applied when generating the signature. The list is defensively copied to protect against subsequent modification. May benull
or empty. -
type
- the reference type, as a URI (may benull
) -
id
- the reference ID (may benull
) - Returns:
- a
Reference
- Throws:
-
ClassCastException
- if any of the transforms (in either list) are not of typeTransform
-
IllegalArgumentException
- ifuri
is not RFC 2396 compliant orappliedTransforms
is empty -
NullPointerException
- ifdm
,appliedTransforms
orresult
isnull
newSignedInfo
public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List<? extends Reference> references)
Creates a SignedInfo
with the specified canonicalization and signature methods, and list of one or more references.
- Parameters:
-
cm
- the canonicalization method -
sm
- the signature method -
references
- a list of one or moreReference
s. The list is defensively copied to protect against subsequent modification. - Returns:
- a
SignedInfo
- Throws:
-
ClassCastException
- if any of the references are not of typeReference
-
IllegalArgumentException
- ifreferences
is empty -
NullPointerException
- if any of the parameters arenull
newSignedInfo
public abstract SignedInfo newSignedInfo(CanonicalizationMethod cm, SignatureMethod sm, List<? extends Reference> references, String id)
Creates a SignedInfo
with the specified parameters.
- Parameters:
-
cm
- the canonicalization method -
sm
- the signature method -
references
- a list of one or moreReference
s. The list is defensively copied to protect against subsequent modification. -
id
- the id (may benull
) - Returns:
- a
SignedInfo
- Throws:
-
ClassCastException
- if any of the references are not of typeReference
-
IllegalArgumentException
- ifreferences
is empty -
NullPointerException
- ifcm
,sm
, orreferences
arenull
newXMLObject
public abstract XMLObject newXMLObject(List<? extends XMLStructure> content, String id, String mimeType, String encoding)
Creates an XMLObject
from the specified parameters.
- Parameters:
-
content
- a list ofXMLStructure
s. The list is defensively copied to protect against subsequent modification. May benull
or empty. -
id
- the Id (may benull
) -
mimeType
- the mime type (may benull
) -
encoding
- the encoding (may benull
) - Returns:
- an
XMLObject
- Throws:
-
ClassCastException
- ifcontent
contains any entries that are not of typeXMLStructure
newManifest
public abstract Manifest newManifest(List<? extends Reference> references)
Creates a Manifest
containing the specified list of Reference
s.
- Parameters:
-
references
- a list of one or moreReference
s. The list is defensively copied to protect against subsequent modification. - Returns:
- a
Manifest
- Throws:
-
NullPointerException
- ifreferences
isnull
-
IllegalArgumentException
- ifreferences
is empty -
ClassCastException
- ifreferences
contains any entries that are not of typeReference
newManifest
public abstract Manifest newManifest(List<? extends Reference> references, String id)
Creates a Manifest
containing the specified list of Reference
s and optional id.
- Parameters:
-
references
- a list of one or moreReference
s. The list is defensively copied to protect against subsequent modification. -
id
- the id (may benull
) - Returns:
- a
Manifest
- Throws:
-
NullPointerException
- ifreferences
isnull
-
IllegalArgumentException
- ifreferences
is empty -
ClassCastException
- ifreferences
contains any entries that are not of typeReference
newSignatureProperty
public abstract SignatureProperty newSignatureProperty(List<? extends XMLStructure> content, String target, String id)
Creates a SignatureProperty
containing the specified list of XMLStructure
s, target URI and optional id.
- Parameters:
-
content
- a list of one or moreXMLStructure
s. The list is defensively copied to protect against subsequent modification. -
target
- the target URI of the Signature that this property applies to -
id
- the id (may benull
) - Returns:
- a
SignatureProperty
- Throws:
-
NullPointerException
- ifcontent
ortarget
isnull
-
IllegalArgumentException
- ifcontent
is empty -
ClassCastException
- ifcontent
contains any entries that are not of typeXMLStructure
newSignatureProperties
public abstract SignatureProperties newSignatureProperties(List<? extends SignatureProperty> properties, String id)
Creates a SignatureProperties
containing the specified list of SignatureProperty
s and optional id.
- Parameters:
-
properties
- a list of one or moreSignatureProperty
s. The list is defensively copied to protect against subsequent modification. -
id
- the id (may benull
) - Returns:
- a
SignatureProperties
- Throws:
-
NullPointerException
- ifproperties
isnull
-
IllegalArgumentException
- ifproperties
is empty -
ClassCastException
- ifproperties
contains any entries that are not of typeSignatureProperty
newDigestMethod
public abstract DigestMethod newDigestMethod(String algorithm, DigestMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Creates a DigestMethod
for the specified algorithm URI and parameters.
- Parameters:
-
algorithm
- the URI identifying the digest algorithm -
params
- algorithm-specific digest parameters (may benull
) - Returns:
- the
DigestMethod
- Throws:
-
InvalidAlgorithmParameterException
- if the specified parameters are inappropriate for the requested algorithm -
NoSuchAlgorithmException
- if an implementation of the specified algorithm cannot be found -
NullPointerException
- ifalgorithm
isnull
newSignatureMethod
public abstract SignatureMethod newSignatureMethod(String algorithm, SignatureMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Creates a SignatureMethod
for the specified algorithm URI and parameters.
- Parameters:
-
algorithm
- the URI identifying the signature algorithm -
params
- algorithm-specific signature parameters (may benull
) - Returns:
- the
SignatureMethod
- Throws:
-
InvalidAlgorithmParameterException
- if the specified parameters are inappropriate for the requested algorithm -
NoSuchAlgorithmException
- if an implementation of the specified algorithm cannot be found -
NullPointerException
- ifalgorithm
isnull
newTransform
public abstract Transform newTransform(String algorithm, TransformParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Creates a Transform
for the specified algorithm URI and parameters.
- Parameters:
-
algorithm
- the URI identifying the transform algorithm -
params
- algorithm-specific transform parameters (may benull
) - Returns:
- the
Transform
- Throws:
-
InvalidAlgorithmParameterException
- if the specified parameters are inappropriate for the requested algorithm -
NoSuchAlgorithmException
- if an implementation of the specified algorithm cannot be found -
NullPointerException
- ifalgorithm
isnull
newTransform
public abstract Transform newTransform(String algorithm, XMLStructure params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Creates a Transform
for the specified algorithm URI and parameters. The parameters are specified as a mechanism-specific XMLStructure
(ex: DOMStructure
). This method is useful when the parameters are in XML form or there is no standard class for specifying the parameters.
- Parameters:
-
algorithm
- the URI identifying the transform algorithm -
params
- a mechanism-specific XML structure from which to unmarshal the parameters from (may benull
if not required or optional) - Returns:
- the
Transform
- Throws:
-
ClassCastException
- if the type ofparams
is inappropriate for thisXMLSignatureFactory
-
InvalidAlgorithmParameterException
- if the specified parameters are inappropriate for the requested algorithm -
NoSuchAlgorithmException
- if an implementation of the specified algorithm cannot be found -
NullPointerException
- ifalgorithm
isnull
newCanonicalizationMethod
public abstract CanonicalizationMethod newCanonicalizationMethod(String algorithm, C14NMethodParameterSpec params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Creates a CanonicalizationMethod
for the specified algorithm URI and parameters.
- Parameters:
-
algorithm
- the URI identifying the canonicalization algorithm -
params
- algorithm-specific canonicalization parameters (may benull
) - Returns:
- the
CanonicalizationMethod
- Throws:
-
InvalidAlgorithmParameterException
- if the specified parameters are inappropriate for the requested algorithm -
NoSuchAlgorithmException
- if an implementation of the specified algorithm cannot be found -
NullPointerException
- ifalgorithm
isnull
newCanonicalizationMethod
public abstract CanonicalizationMethod newCanonicalizationMethod(String algorithm, XMLStructure params) throws NoSuchAlgorithmException, InvalidAlgorithmParameterException
Creates a CanonicalizationMethod
for the specified algorithm URI and parameters. The parameters are specified as a mechanism-specific XMLStructure
(ex: DOMStructure
). This method is useful when the parameters are in XML form or there is no standard class for specifying the parameters.
- Parameters:
-
algorithm
- the URI identifying the canonicalization algorithm -
params
- a mechanism-specific XML structure from which to unmarshal the parameters from (may benull
if not required or optional) - Returns:
- the
CanonicalizationMethod
- Throws:
-
ClassCastException
- if the type ofparams
is inappropriate for thisXMLSignatureFactory
-
InvalidAlgorithmParameterException
- if the specified parameters are inappropriate for the requested algorithm -
NoSuchAlgorithmException
- if an implementation of the specified algorithm cannot be found -
NullPointerException
- ifalgorithm
isnull
getKeyInfoFactory
public final KeyInfoFactory getKeyInfoFactory()
Returns a KeyInfoFactory
that creates KeyInfo
objects. The returned KeyInfoFactory
has the same mechanism type and provider as this XMLSignatureFactory
.
- Returns:
- a
KeyInfoFactory
- Throws:
-
NoSuchMechanismException
- if aKeyFactory
implementation with the same mechanism type and provider is not available
unmarshalXMLSignature
public abstract XMLSignature unmarshalXMLSignature(XMLValidateContext context) throws MarshalException
Unmarshals a new XMLSignature
instance from a mechanism-specific XMLValidateContext
instance.
- Parameters:
-
context
- a mechanism-specific context from which to unmarshal the signature from - Returns:
- the
XMLSignature
- Throws:
-
NullPointerException
- ifcontext
isnull
-
ClassCastException
- if the type ofcontext
is inappropriate for this factory -
MarshalException
- if an unrecoverable exception occurs during unmarshalling
unmarshalXMLSignature
public abstract XMLSignature unmarshalXMLSignature(XMLStructure xmlStructure) throws MarshalException
Unmarshals a new XMLSignature
instance from a mechanism-specific XMLStructure
instance. This method is useful if you only want to unmarshal (and not validate) an XMLSignature
.
- Parameters:
-
xmlStructure
- a mechanism-specific XML structure from which to unmarshal the signature from - Returns:
- the
XMLSignature
- Throws:
-
NullPointerException
- ifxmlStructure
isnull
-
ClassCastException
- if the type ofxmlStructure
is inappropriate for this factory -
MarshalException
- if an unrecoverable exception occurs during unmarshalling
isFeatureSupported
public abstract boolean isFeatureSupported(String feature)
Indicates whether a specified feature is supported.
- Parameters:
-
feature
- the feature name (as an absolute URI) - Returns:
-
true
if the specified feature is supported,false
otherwise - Throws:
-
NullPointerException
- iffeature
isnull
getURIDereferencer
public abstract URIDereferencer getURIDereferencer()
Returns a reference to the URIDereferencer
that is used by default to dereference URIs in Reference
objects.
- Returns:
- a reference to the default
URIDereferencer
(nevernull
)