OASIS Digital Signature Services eXtended (DSS-X) TC

 View Only
  • 1.  Minor XSD drawback

    Posted 06-10-2018 11:50
    Hi all, while investigating in exotic bindings I generated ASN.1 modules (~ ASN.1 schema file, attached for the curios ones) and stumbled across a detail in our current base & core schema: In some cases we use the extension mechanism, for example with OptionalInputsSignType -> OptionalInputsBaseType -> OptionalInputsType. Within the OptionalInputs we use the 'sequence of choice' pattern to get rid of specific ordering. In the ASN.1 module it became obvious that the extension mechanism interferes with the 'sequence of choice'. The 'choice' cannot be extended, just the sequence. So we get sequence of three choices. This fact was somehow surprising to me. There are some weird workarounds available (e.g using a ' substitutionGroup ' ). To me the mentioned problem does not justify the introduction of such an unusual XSD element. My proposal is to add a remark and leave as is. What your opinion? Greetings, Andreas -- Andreas Kühne phone: +49 177 293 24 97 mailto: kuehne@trustable.de Trustable Ltd. Niederlassung Deutschland Gartenheimstr. 39C - 30659 Hannover Amtsgericht Hannover HRB 212612 Director Andreas Kühne Company UK Company No: 5218868 Registered in England and Wales /*******************************************************************/ /* Copyright (C) 2003-2018 OSS Nokalva, Inc. All rights reserved. */ /*******************************************************************/ /* Generated for: Trustable Ltd., Hannover, Germany - XSD to ASN.1 Translator Trial, Expires 06/09/18, License: 16341TT. */ /* Created: Fri Jun 1 16:56:45 2018 */ /* XSD to ASN.1 Translator version: 3.2 */ /* XSD to ASN.1 Translator options and file names specified: * /media/sf_kuehn/git/oxygen/code/sirius_ft/sirius_ws/sirius_ws_core/target/generated-resources/xml/schema/bindingschema_2_0.xsd * /media/sf_kuehn/git/oxygen/code/sirius_ft/sirius_ws/sirius_ws_core/target/generated-resources/xml/schema/oasis-dss-base-schema.xsd * /media/sf_kuehn/git/oxygen/code/sirius_ft/sirius_ws/sirius_ws_core/target/generated-resources/xml/schema/oasis-dss-core-schema-v2.0.xsd * /media/sf_kuehn/git/oxygen/code/sirius_ft/sirius_ws/sirius_ws_core/target/generated-resources/xml/schema/oasis-sstc-saml-schema-protocol-1.1-dss-rw.xsd * /media/sf_kuehn/git/oxygen/code/sirius_ft/sirius_ws/sirius_ws_core/target/generated-resources/xml/schema/saml-schema-assertion-2.0-dss-rw.xsd * /media/sf_kuehn/git/oxygen/code/sirius_ft/sirius_ws/sirius_ws_core/target/generated-resources/xml/schema/xenc-schema.xsd * /media/sf_kuehn/git/oxygen/code/sirius_ft/sirius_ws/sirius_ws_core/target/generated-resources/xml/schema/xmldsig-core-schema-dss-rw.xsd * /media/sf_kuehn/git/oxygen/code/sirius_ft/sirius_ws/sirius_ws_core/target/generated-resources/xml/schema/xml.xsd */ /* xml version="1.0" encoding="UTF-8" */ Core DEFINITIONS XER INSTRUCTIONS AUTOMATIC TAGS ::= BEGIN IMPORTS ID, AnyURI, IDREFS, String, IDREF, Language, DateTime FROM XSD Base64DataType-derivations, DigestInfoType, ResultType, NsPrefixMappingType, AnyType-1, ResponseBaseType-derivations, InternationalStringType FROM Base TransformsType FROM Rewritten NameIDType FROM Rewritten-2; /* This Schema defines the Digital Signature Service Core Protocols, Elements, and Bindings Committee Specification version 1.0 release 1 */ /* xs:import namespace=" http://www.w3.org/2000/09/xmldsig#" ; schemaLocation=" http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/ > <xs:import namespace="urn:oasis:names:tc:SAML:1.0:assertion" schemaLocation=" http://www.oasis-open.org/committees/download.php/3408/oasis-s stc-saml-schema-protocol-1.1.xsd"/> <xs:import namespace=" http://www.w3.org/XML/1998/namespace" ; schemaLocation="xml.xsd"/ */ /* xs:import namespace=" http://www.w3.org/XML/1998/namespace" ; schemaLocation="xml.xsd"/ */ /* =================================== */ /* Document Handling */ /* =================================== */ InputDocuments ::= [ELEMENT] InputDocumentsType InputDocumentsType ::= SEQUENCE { choice [UNTAGGED] CHOICE { sequence-list [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF [UNTAGGED] SEQUENCE { document [NAME AS CAPITALIZED] DocumentType }, sequence-list-1 [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF [UNTAGGED] SEQUENCE { transformedData [NAME AS CAPITALIZED] TransformedDataType }, sequence-list-2 [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF [UNTAGGED] SEQUENCE { documentHash [NAME AS CAPITALIZED] DocumentHashType } } } DocumentBaseType ::= SEQUENCE { iD [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.ID OPTIONAL, refType [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, refURI [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, schemaRefs [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREFS OPTIONAL } Document ::= [ELEMENT] DocumentType DocumentType ::= SEQUENCE { iD [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.ID OPTIONAL, refType [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, refURI [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, schemaRefs [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREFS OPTIONAL, base64Data [NAME AS CAPITALIZED] Base64DataType-derivations } TransformedDataType ::= SEQUENCE { iD [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.ID OPTIONAL, refType [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, refURI [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, schemaRefs [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREFS OPTIONAL, whichReference [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] INTEGER OPTIONAL, transforms [NAME AS CAPITALIZED] TransformsType OPTIONAL, base64Data [NAME AS CAPITALIZED] Base64DataType-derivations } DocumentHash ::= [ELEMENT] DocumentHashType DocumentHashType ::= SEQUENCE { iD [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.ID OPTIONAL, refType [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, refURI [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, schemaRefs [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREFS OPTIONAL, whichReference [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] INTEGER OPTIONAL, transforms [NAME AS CAPITALIZED] TransformsType OPTIONAL, digestInfos-list [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF digestInfos [NAME AS CAPITALIZED] DigestInfoType } /* =================================== */ /* SignRequest / SignResponse */ /* =================================== */ SignRequest ::= [ELEMENT] SignRequestType SignRequestType ::= SEQUENCE { requestID [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, profile-list [UNTAGGED] SEQUENCE OF profile [NAME AS CAPITALIZED] XSD.AnyURI, inputDocuments [NAME AS CAPITALIZED] InputDocumentsType OPTIONAL, optionalInputs [NAME AS CAPITALIZED] OptionalInputsSignType OPTIONAL } SignResponse ::= [ELEMENT] SignResponseType SignResponseType ::= SEQUENCE { requestID [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, responseID [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, result [NAME AS CAPITALIZED] ResultType, appliedProfile-list [UNTAGGED] SEQUENCE OF appliedProfile [NAME AS CAPITALIZED] XSD.AnyURI, optionalOutputs [NAME AS CAPITALIZED] OptionalOutputsSignType OPTIONAL , signatureObject [NAME AS CAPITALIZED] SignatureObjectType OPTIONAL } SignatureObject ::= [ELEMENT] SignatureObjectType SignatureObjectType ::= SEQUENCE { schemaRefs [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREFS OPTIONAL, choice [UNTAGGED] CHOICE { base64Signature [NAME AS CAPITALIZED] Base64DataType-derivations, signaturePtr [NAME AS CAPITALIZED] SignaturePtrType } } SignaturePtr ::= [ELEMENT] SignaturePtrType SignaturePtrType ::= SEQUENCE { whichDocument [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREF, xPath [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, nsPrefixMapping-list [UNTAGGED] SEQUENCE OF nsPrefixMapping [NAME AS CAPITALIZED] NsPrefixMappingType } /* =================================== */ /* VerifyRequest / VerifyResponse */ /* =================================== */ VerifyRequest ::= [ELEMENT] VerifyRequestType VerifyRequestType ::= SEQUENCE { requestID [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, profile-list [UNTAGGED] SEQUENCE OF profile [NAME AS CAPITALIZED] XSD.AnyURI, inputDocuments [NAME AS CAPITALIZED] InputDocumentsType OPTIONAL, optionalInputs [NAME AS CAPITALIZED] OptionalInputsVerifyType OPTIONAL, signatureObject [NAME AS CAPITALIZED] SignatureObjectType OPTIONAL } VerifyResponse ::= [ELEMENT] VerifyResponseType VerifyResponseType ::= SEQUENCE { requestID [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, responseID [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, result [NAME AS CAPITALIZED] ResultType, appliedProfile-list [UNTAGGED] SEQUENCE OF appliedProfile [NAME AS CAPITALIZED] XSD.AnyURI, optionalOutputs [NAME AS CAPITALIZED] OptionalOutputsVerifyType OPTIONAL } PendingRequestType ::= SEQUENCE { requestID [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, profile-list [UNTAGGED] SEQUENCE OF profile [NAME AS CAPITALIZED] XSD.AnyURI, claimedIdentity [NAME AS CAPITALIZED] ClaimedIdentityType OPTIONAL } RequestID ::= XSD.String ResponseID ::= XSD.String /* =================================== */ /* OptionalInputs / OptionalOutputs */ /* =================================== */ OptionalInputsBaseType ::= SEQUENCE { choice [UNTAGGED] CHOICE { servicePolicy-list [UNTAGGED] SEQUENCE OF servicePolicy [NAME AS CAPITALIZED] XSD.AnyURI, language-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF language [NAME AS CAPITALIZED] XSD.Language, other-list [UNTAGGED] SEQUENCE OF other [NAME AS CAPITALIZED] AnyType-1 }, choice-1 [UNTAGGED] CHOICE { claimedIdentity-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF claimedIdentity [NAME AS CAPITALIZED] ClaimedIdentityType, schemas-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF schemas [NAME AS CAPITALIZED] SchemasType, addTimestamp-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF addTimestamp [NAME AS CAPITALIZED] AugmentSignatureInstructionType } } OptionalInputsSignType ::= SEQUENCE { choice [UNTAGGED] CHOICE { servicePolicy-list [UNTAGGED] SEQUENCE OF servicePolicy [NAME AS CAPITALIZED] XSD.AnyURI, language-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF language [NAME AS CAPITALIZED] XSD.Language, other-list [UNTAGGED] SEQUENCE OF other [NAME AS CAPITALIZED] AnyType-1 }, choice-1 [UNTAGGED] CHOICE { claimedIdentity-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF claimedIdentity [NAME AS CAPITALIZED] ClaimedIdentityType, schemas-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF schemas [NAME AS CAPITALIZED] SchemasType, addTimestamp-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF addTimestamp [NAME AS CAPITALIZED] AugmentSignatureInstructionType }, choice-2 [UNTAGGED] CHOICE { signatureType-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF signatureType [NAME AS CAPITALIZED] XSD.AnyURI, intendedAudience-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF intendedAudience [NAME AS CAPITALIZED] IntendedAudienceType, keySelector-list [UNTAGGED] SEQUENCE OF keySelector [NAME AS CAPITALIZED] KeySelectorType, properties-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF properties [NAME AS CAPITALIZED] PropertiesHolderType, includeObject-list [UNTAGGED] SEQUENCE OF includeObject [NAME AS CAPITALIZED] IncludeObjectType, includeEContent-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF includeEContent [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN, signaturePlacement-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF signaturePlacement [NAME AS CAPITALIZED] SignaturePlacementType, signedReferences-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF signedReferences [NAME AS CAPITALIZED] SignedReferencesType, nonce-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF nonce [NAME AS CAPITALIZED] INTEGER, signatureAlgorithm-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF signatureAlgorithm [NAME AS CAPITALIZED] XSD.String , signatureQualityLevel-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF signatureQualityLevel [NAME AS CAPITALIZED] XSD.AnyURI } } OptionalInputsVerifyType ::= SEQUENCE { choice [UNTAGGED] CHOICE { servicePolicy-list [UNTAGGED] SEQUENCE OF servicePolicy [NAME AS CAPITALIZED] XSD.AnyURI, language-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF language [NAME AS CAPITALIZED] XSD.Language, other-list [UNTAGGED] SEQUENCE OF other [NAME AS CAPITALIZED] AnyType-1 }, choice-1 [UNTAGGED] CHOICE { claimedIdentity-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF claimedIdentity [NAME AS CAPITALIZED] ClaimedIdentityType, schemas-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF schemas [NAME AS CAPITALIZED] SchemasType, addTimestamp-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF addTimestamp [NAME AS CAPITALIZED] AugmentSignatureInstructionType }, choice-2 [UNTAGGED] CHOICE { useVerificationTime-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF useVerificationTime [NAME AS CAPITALIZED] UseVerificationTimeType, returnVerificationTimeInfo-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF returnVerificationTimeInfo [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN, additionalKeyInfo-list [UNTAGGED] SEQUENCE OF additionalKeyInfo [NAME AS CAPITALIZED] AdditionalKeyInfoType, returnProcessingDetails-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF returnProcessingDetails [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN, returnSigningTimeInfo-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF returnSigningTimeInfo [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN, returnSignerIdentity-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF returnSignerIdentity [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN, returnAugmentedSignature-list [UNTAGGED] SEQUENCE OF returnAugmentedSignature [NAME AS CAPITALIZED] AugmentSignatureInstructionType , returnTransformedDocument-list [UNTAGGED] SEQUENCE OF returnTransformedDocument [NAME AS CAPITALIZED] ReturnTransformedDocumentType, returnTimestampedSignature-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF returnTimestampedSignature [NAME AS CAPITALIZED] AugmentSignatureInstructionType , verifyManifests-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF verifyManifests [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN } } OptionalOutputsBaseType ::= SEQUENCE { appliedPolicy-list [UNTAGGED] SEQUENCE OF appliedPolicy [NAME AS CAPITALIZED] XSD.AnyURI, other-list [UNTAGGED] SEQUENCE OF other [NAME AS CAPITALIZED] AnyType-1, choice [UNTAGGED] CHOICE { transformedDocument-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF transformedDocument [NAME AS CAPITALIZED] TransformedDocumentType, schemas-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF schemas [NAME AS CAPITALIZED] SchemasType, documentWithSignature-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF documentWithSignature [NAME AS CAPITALIZED] DocumentWithSignatureType } } OptionalOutputsSignType ::= SEQUENCE { appliedPolicy-list [UNTAGGED] SEQUENCE OF appliedPolicy [NAME AS CAPITALIZED] XSD.AnyURI, other-list [UNTAGGED] SEQUENCE OF other [NAME AS CAPITALIZED] AnyType-1, choice [UNTAGGED] CHOICE { transformedDocument-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF transformedDocument [NAME AS CAPITALIZED] TransformedDocumentType, schemas-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF schemas [NAME AS CAPITALIZED] SchemasType, documentWithSignature-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF documentWithSignature [NAME AS CAPITALIZED] DocumentWithSignatureType } } OptionalOutputsVerifyType ::= SEQUENCE { appliedPolicy-list [UNTAGGED] SEQUENCE OF appliedPolicy [NAME AS CAPITALIZED] XSD.AnyURI, other-list [UNTAGGED] SEQUENCE OF other [NAME AS CAPITALIZED] AnyType-1, choice [UNTAGGED] CHOICE { transformedDocument-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF transformedDocument [NAME AS CAPITALIZED] TransformedDocumentType, schemas-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF schemas [NAME AS CAPITALIZED] SchemasType, documentWithSignature-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF documentWithSignature [NAME AS CAPITALIZED] DocumentWithSignatureType }, choice-1 [UNTAGGED] CHOICE { verifyManifestResults-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF verifyManifestResults [NAME AS CAPITALIZED] VerifyManifestResultsType, signingTimeInfo-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF signingTimeInfo [NAME AS CAPITALIZED] SigningTimeInfoType, verificationTimeInfo-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF verificationTimeInfo [NAME AS CAPITALIZED] VerificationTimeInfoType, processingDetails-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF processingDetails [NAME AS CAPITALIZED] ProcessingDetailsType, signerIdentity-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF signerIdentity [NAME AS CAPITALIZED] NameIDType, augmentedSignature-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF augmentedSignature [NAME AS CAPITALIZED] AugmentedSignatureType, timestampedSignature-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF timestampedSignature [NAME AS CAPITALIZED] AugmentedSignatureType } } ServicePolicy-1 ::= [NAME AS "ServicePolicy"] [ELEMENT] XSD.AnyURI ClaimedIdentity ::= [ELEMENT] ClaimedIdentityType ClaimedIdentityType ::= SEQUENCE { name [NAME AS CAPITALIZED] NameIDType, supportingInfo [NAME AS CAPITALIZED] AnyType-1 OPTIONAL } Language-1 ::= [NAME AS "Language"] [ELEMENT] XSD.Language AdditionalProfile ::= [ELEMENT] XSD.AnyURI Schemas ::= [ELEMENT] SchemasType SchemasType ::= SEQUENCE { schema-list [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF schema [NAME AS CAPITALIZED] DocumentType } Schema ::= [ELEMENT] DocumentType Response ::= [ELEMENT] ResponseBaseType-derivations SignatureType ::= [ELEMENT] XSD.AnyURI AddTimestamp ::= [ELEMENT] AugmentSignatureInstructionType AugmentSignatureInstructionType ::= SEQUENCE { type [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL } IntendedAudience ::= [ELEMENT] IntendedAudienceType IntendedAudienceType ::= SEQUENCE { recipient-list [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF recipient [NAME AS CAPITALIZED] NameIDType } KeySelector ::= [ELEMENT] KeySelectorType KeySelectorType ::= SEQUENCE { choice [UNTAGGED] CHOICE { x509Digest [NAME AS CAPITALIZED] X509DigestType, x509SubjectName [NAME AS CAPITALIZED] XSD.String, x509SKI [NAME AS CAPITALIZED] [BASE64] OCTET STRING, x509Certificate [NAME AS CAPITALIZED] [BASE64] OCTET STRING, keyName [NAME AS CAPITALIZED] XSD.String } } X509DigestType ::= SEQUENCE { algorithm [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String, base [BASE64] [UNTAGGED] OCTET STRING } PropertiesHolder ::= [ELEMENT] PropertiesHolderType PropertiesHolderType ::= SEQUENCE { signedProperties [NAME AS CAPITALIZED] PropertiesType OPTIONAL, unsignedProperties [NAME AS CAPITALIZED] PropertiesType OPTIONAL } PropertiesType ::= SEQUENCE { property-list [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF property [NAME AS CAPITALIZED] PropertyType } PropertyType ::= SEQUENCE { identifier [NAME AS CAPITALIZED] XSD.String, value [NAME AS CAPITALIZED] AnyType-1 OPTIONAL } Property ::= [ELEMENT] PropertyType IncludeObject ::= [ELEMENT] IncludeObjectType IncludeObjectType ::= SEQUENCE { objId [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, whichDocument [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREF OPTIONAL, createReference [NOT NAMESPACE] [ATTRIBUTE] BOOLEAN DEFAULT TRUE, hasObjectTagsAndAttributesSet [NOT NAMESPACE] [ATTRIBUTE] BOOLEAN DEFAULT FALSE } SignaturePlacement ::= [ELEMENT] SignaturePlacementType SignaturePlacementType ::= SEQUENCE { createEnvelopedSignature [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] BOOLEAN DEFAULT TRUE, whichDocument [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREF OPTIONAL, choice [UNTAGGED] CHOICE { xPathAfter [NAME AS CAPITALIZED] XSD.String, xPathFirstChildOf [NAME AS CAPITALIZED] XSD.String }, nsPrefixMapping-list [UNTAGGED] SEQUENCE OF nsPrefixMapping [NAME AS CAPITALIZED] NsPrefixMappingType } DocumentWithSignature ::= [ELEMENT] DocumentWithSignatureType DocumentWithSignatureType ::= SEQUENCE { document [NAME AS CAPITALIZED] DocumentType } SignedReferences ::= [ELEMENT] SignedReferencesType SignedReferencesType ::= SEQUENCE { signedReference-list [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF signedReference [NAME AS CAPITALIZED] SignedReferenceType } SignedReference ::= [ELEMENT] SignedReferenceType SignedReferenceType ::= SEQUENCE { refId [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL, refURI [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, whichDocument [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.IDREF, transforms [NAME AS CAPITALIZED] TransformsType OPTIONAL } VerifyManifestResults ::= [ELEMENT] VerifyManifestResultsType VerifyManifestResultsType ::= SEQUENCE { manifestResult-list [UNTAGGED] SEQUENCE (SIZE(1..MAX)) OF manifestResult [NAME AS CAPITALIZED] ManifestResultType } ManifestResult ::= [ELEMENT] ManifestResultType ManifestResultType ::= SEQUENCE { referenceXpath [NAME AS CAPITALIZED] XSD.String, status [NAME AS CAPITALIZED] XSD.AnyURI ( "urn:oasis:names:tc:dss:1.0:manifeststatus:Valid" "urn:oasis:names:tc:dss:1.0:manifeststatus:Invalid"), nsPrefixMapping-list [UNTAGGED] SEQUENCE OF nsPrefixMapping [NAME AS CAPITALIZED] NsPrefixMappingType } UseVerificationTime ::= [ELEMENT] UseVerificationTimeType UseVerificationTimeType ::= SEQUENCE { choice [UNTAGGED] CHOICE { currentTime [NAME AS CAPITALIZED] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN, specificTime [NAME AS CAPITALIZED] XSD.DateTime, base64Content-list [UNTAGGED] SEQUENCE (SIZE(0..1)) OF base64Content [NAME AS CAPITALIZED] [BASE64] OCTET STRING } } ReturnVerificationTimeInfo ::= [ELEMENT] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN AdditionalTimeInfo ::= [ELEMENT] AdditionalTimeInfoType AdditionalTimeInfoType ::= SEQUENCE { ref [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.String OPTIONAL , type [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI ( "urn:oasis:names:tc:dss:1.0:additionaltimeinfo:signatureTimestamp" "urn:oasis:names:tc:dss:1.0:additionaltimeinfo:signatureTimemark" "urn:oasis:names:tc:dss:1.0:additionaltimeinfo:signedObjectTimestamp" "urn:oasis:names:tc:dss:1.0:additionaltimeinfo:claimedSigningTime") , base [UNTAGGED] XSD.DateTime } VerificationTimeInfo ::= [ELEMENT] VerificationTimeInfoType VerificationTimeInfoType ::= SEQUENCE { verificationTime [NAME AS CAPITALIZED] XSD.DateTime, additionalTimeInfo-list [UNTAGGED] SEQUENCE OF additionalTimeInfo [NAME AS CAPITALIZED] AdditionalTimeInfoType } AdditionalKeyInfo ::= [ELEMENT] AdditionalKeyInfoType AdditionalKeyInfoType ::= SEQUENCE { choice [UNTAGGED] CHOICE { x509Digest [NAME AS CAPITALIZED] X509DigestType, x509SubjectName [NAME AS CAPITALIZED] XSD.String, x509SKI [NAME AS CAPITALIZED] [BASE64] OCTET STRING, x509Certificate [NAME AS CAPITALIZED] [BASE64] OCTET STRING, keyName [NAME AS CAPITALIZED] XSD.String, x509CRL [NAME AS CAPITALIZED] [BASE64] OCTET STRING } } ReturnProcessingDetails ::= [ELEMENT] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN ProcessingDetails ::= [ELEMENT] ProcessingDetailsType ProcessingDetailsType ::= SEQUENCE { validDetail-list [UNTAGGED] SEQUENCE OF validDetail [NAME AS CAPITALIZED] DetailType, indeterminateDetail-list [UNTAGGED] SEQUENCE OF indeterminateDetail [NAME AS CAPITALIZED] DetailType, invalidDetail-list [UNTAGGED] SEQUENCE OF invalidDetail [NAME AS CAPITALIZED] DetailType } DetailType ::= SEQUENCE { type [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI , code [NAME AS CAPITALIZED] XSD.AnyURI OPTIONAL, message [NAME AS CAPITALIZED] InternationalStringType OPTIONAL, base64Content [NAME AS CAPITALIZED] [BASE64] OCTET STRING OPTIONAL } ReturnSigningTimeInfo ::= [ELEMENT] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN SigningTimeInfo ::= [ELEMENT] SigningTimeInfoType SigningTimeInfoType ::= SEQUENCE { signingTime [NAME AS CAPITALIZED] XSD.DateTime, signingTimeBoundaries [NAME AS CAPITALIZED] SEQUENCE { lowerBoundary [NAME AS CAPITALIZED] XSD.DateTime OPTIONAL, upperBoundary [NAME AS CAPITALIZED] XSD.DateTime OPTIONAL } OPTIONAL } ReturnSignerIdentity ::= [ELEMENT] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN SignerIdentity ::= [ELEMENT] NameIDType AugmentSignature ::= [ELEMENT] AugmentedSignatureType AugmentedSignatureType ::= SEQUENCE { type [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] XSD.AnyURI OPTIONAL, signatureObject [NAME AS CAPITALIZED] SignatureObjectType } ReturnTransformedDocument ::= [ELEMENT] ReturnTransformedDocumentType ReturnTransformedDocumentType ::= SEQUENCE { whichReference [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] INTEGER } TransformedDocument ::= [ELEMENT] TransformedDocumentType TransformedDocumentType ::= SEQUENCE { whichReference [NAME AS CAPITALIZED] [NOT NAMESPACE] [ATTRIBUTE] INTEGER, document [NAME AS CAPITALIZED] DocumentType } ReturnTimestampedSignature ::= [ELEMENT] [DEFAULT-FOR-EMPTY AS FALSE] BOOLEAN TimestampedSignature ::= [ELEMENT] AugmentedSignatureType ENCODING-CONTROL XER GLOBAL-DEFAULTS MODIFIED-ENCODINGS GLOBAL-DEFAULTS CONTROL-NAMESPACE " http://www.w3.org/2001/XMLSchema-instance" ; PREFIX "xsi" NAMESPACE ALL, ALL IN ALL AS " http://docs.oasis-open.org/dss/ns/core" ; PREFIX "dss2" NAMESPACE SignRequestType.profile-list.profile, SignResponseType.result, SignResponseType.appliedProfile-list.appliedProfile, VerifyRequestType.profile-list.profile, VerifyResponseType.result, VerifyResponseType.appliedProfile-list.appliedProfile, PendingRequestType.profile-list.profile, OptionalInputsBaseType.choice.servicePolicy-list.servicePolicy, OptionalInputsBaseType.choice.language-list.language, OptionalInputsBaseType.choice.other-list.other, OptionalInputsSignType.choice.servicePolicy-list.servicePolicy, OptionalInputsSignType.choice.language-list.language, OptionalInputsSignType.choice.other-list.other, OptionalInputsVerifyType.choice.servicePolicy-list.servicePolicy, OptionalInputsVerifyType.choice.language-list.language, OptionalInputsVerifyType.choice.other-list.other, OptionalOutputsBaseType.appliedPolicy-list.appliedPolicy, OptionalOutputsBaseType.other-list.other, OptionalOutputsSignType.appliedPolicy-list.appliedPolicy, OptionalOutputsSignType.other-list.other, OptionalOutputsVerifyType.appliedPolicy-list.appliedPolicy, OptionalOutputsVerifyType.other-list.other AS " http://docs.oasis-open.org/dss/ns/base" ; PREFIX "dsb" END