package

xades4j.properties.data

Low-level representation of the qualifying properties information and corresponing structural verification. These types are intermediate representations (data objects) of the properties between the XML tree and the high-level types.

The diference for the types in xades4j.properties is that data objects contain all the data that is needed to create the final XML structure. For instance, the high-level SigningCertificate contains a list of X509Certificate while the corresponding data object contains a list of CertRef with the certificate's digest and issuer/serial.

Data objects enable the clear separation of gathering the data needed for a property and generating its actual XML structure (marshalling). Also, they allow the separation between the unmarshalling and property verification.

Data objects are also the appropriate subject to structural verification, i.e. checking if all the required fields are present, if needed collections aren't empty, and so on. This has to be done after unmarshalling because the unmarshaller can be replaced. Also, in signature production some properties have data supplied by the user, which needs be validated. Data objects and the corresponding structure verifiers are the central point for these checks.

The library provides a property data object and the corresponding strucutre verifier for all the supported properties. In addition, there is a generic DOM container (that is also supported by the default properties marshaller) and a extension point for new property data objects (@link OtherPropertyData}.

The types on this package are not heavily documented because they are simple data containers. No checks are made on the data objects themselves, as the corresponding structure verifiers handle that task.

An important note is that whenever a byte[] is used to represent an octet stream that is base-64 encoded in XAdES it should NOT be encoded in base-64 in the property data object.

Interfaces

Classes

Exceptions