OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

dss-x message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Minor XSD drawback


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



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]