diff --git a/external-schemata/.xsdata.xml b/external-schemata/.xsdata.xml
new file mode 100644
index 00000000..f2b8d86c
--- /dev/null
+++ b/external-schemata/.xsdata.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external-schemata/CODEGEN.md b/external-schemata/CODEGEN.md
new file mode 100644
index 00000000..33e886bd
--- /dev/null
+++ b/external-schemata/CODEGEN.md
@@ -0,0 +1,10 @@
+Code generation from XSD data files is handled by `xsdata`.
+The version of `xsdata` used to generate these files should be kept in
+sync with the version in `pyproject.toml` to ensure compatibility,
+and to keep the cumulative maintenance burden for `xsdata` upgrades low.
+
+Generated APIs are not part of pyHanko's public API for the purposes
+of semver, and hence care should be exercised not to expose generated
+types in public API signatures.
+
+Always generate code by running `genxml.sh` from the project's root directory.
\ No newline at end of file
diff --git a/external-schemata/genxml.sh b/external-schemata/genxml.sh
new file mode 100755
index 00000000..8563b60e
--- /dev/null
+++ b/external-schemata/genxml.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+xsdata generate \
+ --config ./external-schemata/.xsdata.xml \
+ -p pyhanko.generated \
+ --recursive \
+ ./external-schemata/xsd/
+
+isort --profile black --line-length 80 pyhanko/generated
+black -S --line-length 80 pyhanko/generated
\ No newline at end of file
diff --git a/external-schemata/xsd/etsi/ts_11910202.xsd b/external-schemata/xsd/etsi/ts_11910202.xsd
new file mode 100644
index 00000000..3439db71
--- /dev/null
+++ b/external-schemata/xsd/etsi/ts_11910202.xsd
@@ -0,0 +1,624 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external-schemata/xsd/etsi/ts_119612.xsd b/external-schemata/xsd/etsi/ts_119612.xsd
new file mode 100644
index 00000000..ad755a1e
--- /dev/null
+++ b/external-schemata/xsd/etsi/ts_119612.xsd
@@ -0,0 +1,457 @@
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.1.4 Language support
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.1.4 Language support
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.5 Scheme operator address
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.5.1 Scheme operator postal address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.5.2 Scheme operator electronic address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.17 Scheme extensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specified in TS 119 612 v2.1.1 clause 5.1.4 Language support
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.18 Trust Service Provider List
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3 Scheme information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.3 TSL type
+
+Specified in TS 119 612 v2.1.1 clause 5.3.4 Scheme operator name
+
+Specified in TS 119 612 v2.1.1 clause 5.3.6 Scheme name
+
+Specified in TS 119 612 v2.1.1 clause 5.3.7 Scheme information URI
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.9 Scheme type/community/rules
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.10 Scheme territory
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.11 TSL policy/legal notice
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.15 Next update
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.13 Pointers to other TSLs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+pecified in TS 119 612 v2.1.1 clause 5.3.13 Pointers to other TSLs item b) from Format
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.13 Pointers to other TSLs item c) from Format
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.16 Distribution points
+
+
+Specified in TS 119 612 v2.1.1 clause 5.3.18 Trust Service Provider List
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.4 TSP information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.4.6 TSP Services (list of services)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.5 Service information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.5.4 Service current status
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.5.7 Service supply points
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.5.1 Service type identifier
+
+
+Specified in TS 119 612 v2.1.1 clause 5.5.3 Service digital identity
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.5.10 Service history
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.6 Service history instance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Specified in TS 119 612 v2.1.1 clause 5.5.9.4 expiredCertsRevocationInfo Extension
+
+
+Specified in TS 119 612 v2.1.1 clause 5.5.9.1 additionalServiceInformation Extension
+
+
+
+
+
+
+
+
+
diff --git a/external-schemata/xsd/etsi/xades.xsd b/external-schemata/xsd/etsi/xades.xsd
new file mode 100644
index 00000000..4197354a
--- /dev/null
+++ b/external-schemata/xsd/etsi/xades.xsd
@@ -0,0 +1,466 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/external-schemata/xsd/w3c/xmldsig_core.xsd b/external-schemata/xsd/w3c/xmldsig_core.xsd
new file mode 100644
index 00000000..78195e01
--- /dev/null
+++ b/external-schemata/xsd/w3c/xmldsig_core.xsd
@@ -0,0 +1,318 @@
+
+
+
+
+
+]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pyhanko/generated/__init__.py b/pyhanko/generated/__init__.py
new file mode 100644
index 00000000..a11ed9ee
--- /dev/null
+++ b/pyhanko/generated/__init__.py
@@ -0,0 +1,5 @@
+from .xml import Langvalue
+
+__all__ = [
+ "Langvalue",
+]
diff --git a/pyhanko/generated/etsi/__init__.py b/pyhanko/generated/etsi/__init__.py
new file mode 100644
index 00000000..85fac53d
--- /dev/null
+++ b/pyhanko/generated/etsi/__init__.py
@@ -0,0 +1,437 @@
+from .ts_119612 import (
+ AdditionalInformation,
+ AdditionalInformationType,
+ AdditionalServiceInformation,
+ AdditionalServiceInformationType,
+ AddressType,
+)
+from .ts_119612 import AnyType as Ts119612AnyType
+from .ts_119612 import (
+ AttributedNonEmptyURIType,
+ DigitalIdentityListType,
+ DigitalIdentityType,
+ DistributionPoints,
+ ElectronicAddress,
+ ElectronicAddressType,
+ ExpiredCertsRevocationInfo,
+ Extension,
+ ExtensionsListType,
+ ExtensionType,
+ InternationalNamesType,
+ MultiLangNormStringType,
+ MultiLangStringType,
+ NextUpdate,
+ NextUpdateType,
+ NonEmptyMultiLangURIListType,
+ NonEmptyMultiLangURIType,
+ NonEmptyURIListType,
+ OtherTSLPointer,
+ OtherTSLPointersType,
+ OtherTSLPointerType,
+ PointersToOtherTSL,
+ PolicyOrLegalNotice,
+ PolicyOrLegalnoticeType,
+ PostalAddress,
+ PostalAddresses,
+ PostalAddressListType,
+ PostalAddressType,
+ SchemeInformation,
+ SchemeInformationURI,
+ SchemeName,
+ SchemeOperatorName,
+ SchemeTerritory,
+ SchemeTypeCommunityRules,
+ ServiceDigitalIdentities,
+ ServiceDigitalIdentity,
+ ServiceDigitalIdentityListType,
+ ServiceHistory,
+ ServiceHistoryInstance,
+ ServiceHistoryInstanceType,
+ ServiceHistoryType,
+ ServiceInformation,
+ ServiceStatus,
+ ServiceSupplyPoints,
+ ServiceSupplyPointsType,
+ ServiceTypeIdentifier,
+ TrustServiceProvider,
+ TrustServiceProviderList,
+ TrustServiceProviderListType,
+ TrustServiceStatusList,
+ TrustStatusListType,
+ TSLSchemeInformationType,
+ TSLType,
+ TSPInformation,
+ TSPInformationType,
+ TSPService,
+ TSPServiceInformationType,
+ TSPServices,
+ TSPServicesListType,
+ TSPServiceType,
+ TSPType,
+)
+from .ts_11910202 import (
+ AdditionalValidationReportDataType,
+ AttributeBaseType,
+ CertificateChainType,
+ ConstraintStatusType,
+ CryptoInformationType,
+ IndividualValidationConstraintReportType,
+ NsPrefixMappingType,
+ POEProvisioningType,
+ POEType,
+ RevocationStatusInformationType,
+ SACertIDListType,
+ SACertIDType,
+ SACommitmentTypeIndicationType,
+ SAContactInfoType,
+ SACounterSignatureType,
+ SACRLIDType,
+ SADataObjectFormatType,
+ SADSSType,
+ SAFilterType,
+ SAMessageDigestType,
+ SANameType,
+ SAOCSPIDType,
+ SAOneSignerRoleType,
+ SAOneSignerRoleTypeEndorsementType,
+ SAReasonType,
+ SARevIDListType,
+ SASignatureProductionPlaceType,
+ SASignerRoleType,
+ SASigningTimeType,
+ SASigPolicyIdentifierType,
+ SASubFilterType,
+ SATimestampType,
+ SAVRIType,
+ SignatureAttributesType,
+ SignatureIdentifierType,
+ SignatureQualityType,
+ SignatureReference,
+ SignatureReferenceType,
+ SignatureValidationPolicyType,
+ SignatureValidationProcessType,
+ SignatureValidationReportType,
+ SignatureValidatorType,
+ SignerInformationType,
+ SignersDocumentType,
+ TypedDataType,
+ ValidationConstraintsEvaluationReportType,
+ ValidationObjectListType,
+ ValidationObjectRepresentationType,
+ ValidationObjectType,
+ ValidationReport,
+ ValidationReportDataType,
+ ValidationReportType,
+ ValidationStatusType,
+ ValidationTimeInfoType,
+ VOReferenceType,
+ XAdESSignaturePtr,
+ XAdESSignaturePtrType,
+)
+from .xades import SPURI, AllDataObjectsTimeStamp, Anytype
+from .xades import AnyType as XadesAnyType
+from .xades import (
+ ArchiveTimeStamp,
+ AttrAuthoritiesCertValues,
+ AttributeCertificateRefs,
+ AttributeRevocationRefs,
+ AttributeRevocationValues,
+ CertIDListType,
+ CertIDType,
+ CertificateValues,
+ CertificateValuesType,
+ CertifiedRolesListType,
+ ClaimedRolesListType,
+ CommitmentTypeIndication,
+ CommitmentTypeIndicationType,
+ CommitmentTypeQualifiersListType,
+ CompleteCertificateRefs,
+ CompleteCertificateRefsType,
+ CompleteRevocationRefs,
+ CompleteRevocationRefsType,
+ CounterSignature,
+ CounterSignatureType,
+ CRLIdentifierType,
+ CRLRefsType,
+ CRLRefType,
+ CRLValuesType,
+ DataObjectFormat,
+ DataObjectFormatType,
+ DigestAlgAndValueType,
+ DocumentationReferencesType,
+ EncapsulatedPKIData,
+ EncapsulatedPKIDataType,
+ GenericTimeStampType,
+ IdentifierType,
+ Include,
+ IncludeType,
+ IndividualDataObjectsTimeStamp,
+ IntegerListType,
+ NoticeReferenceType,
+ ObjectIdentifier,
+ ObjectIdentifierType,
+ OCSPIdentifierType,
+ OCSPRefsType,
+ OCSPRefType,
+ OCSPValuesType,
+ OtherCertStatusRefsType,
+ OtherCertStatusValuesType,
+ OtherTimeStamp,
+ OtherTimeStampType,
+ QualifierType,
+ QualifyingProperties,
+ QualifyingPropertiesReference,
+ QualifyingPropertiesReferenceType,
+ QualifyingPropertiesType,
+ ReferenceInfo,
+ ReferenceInfoType,
+ RefsOnlyTimeStamp,
+ ResponderIDType,
+ RevocationValues,
+ RevocationValuesType,
+ SigAndRefsTimeStamp,
+ SignaturePolicyIdentifier,
+ SignaturePolicyIdentifierType,
+ SignaturePolicyIdType,
+ SignatureProductionPlace,
+ SignatureProductionPlaceType,
+ SignatureTimeStamp,
+ SignedDataObjectProperties,
+ SignedDataObjectPropertiesType,
+ SignedProperties,
+ SignedPropertiesType,
+ SignedSignatureProperties,
+ SignedSignaturePropertiesType,
+ SignerRole,
+ SignerRoleType,
+ SigningCertificate,
+ SigningTime,
+ SigPolicyQualifiersListType,
+ SPUserNotice,
+ SPUserNoticeType,
+ UnsignedDataObjectProperties,
+ UnsignedDataObjectPropertiesType,
+ UnsignedProperties,
+ UnsignedPropertiesType,
+ UnsignedSignatureProperties,
+ UnsignedSignaturePropertiesType,
+ XAdESTimeStamp,
+ XAdESTimeStampType,
+)
+
+__all__ = [
+ "AdditionalValidationReportDataType",
+ "AttributeBaseType",
+ "CertificateChainType",
+ "ConstraintStatusType",
+ "CryptoInformationType",
+ "IndividualValidationConstraintReportType",
+ "NsPrefixMappingType",
+ "POEProvisioningType",
+ "POEType",
+ "RevocationStatusInformationType",
+ "SACRLIDType",
+ "SACertIDListType",
+ "SACertIDType",
+ "SACommitmentTypeIndicationType",
+ "SAContactInfoType",
+ "SACounterSignatureType",
+ "SADSSType",
+ "SADataObjectFormatType",
+ "SAFilterType",
+ "SAMessageDigestType",
+ "SANameType",
+ "SAOCSPIDType",
+ "SAOneSignerRoleType",
+ "SAOneSignerRoleTypeEndorsementType",
+ "SAReasonType",
+ "SARevIDListType",
+ "SASigPolicyIdentifierType",
+ "SASignatureProductionPlaceType",
+ "SASignerRoleType",
+ "SASigningTimeType",
+ "SASubFilterType",
+ "SATimestampType",
+ "SAVRIType",
+ "SignatureAttributesType",
+ "SignatureIdentifierType",
+ "SignatureQualityType",
+ "SignatureReference",
+ "SignatureReferenceType",
+ "SignatureValidationPolicyType",
+ "SignatureValidationProcessType",
+ "SignatureValidationReportType",
+ "SignatureValidatorType",
+ "SignerInformationType",
+ "SignersDocumentType",
+ "TypedDataType",
+ "VOReferenceType",
+ "ValidationConstraintsEvaluationReportType",
+ "ValidationObjectListType",
+ "ValidationObjectRepresentationType",
+ "ValidationObjectType",
+ "ValidationReport",
+ "ValidationReportDataType",
+ "ValidationReportType",
+ "ValidationStatusType",
+ "ValidationTimeInfoType",
+ "XAdESSignaturePtr",
+ "XAdESSignaturePtrType",
+ "AdditionalInformation",
+ "AdditionalInformationType",
+ "AdditionalServiceInformation",
+ "AdditionalServiceInformationType",
+ "AddressType",
+ "Ts119612AnyType",
+ "AttributedNonEmptyURIType",
+ "DigitalIdentityListType",
+ "DigitalIdentityType",
+ "DistributionPoints",
+ "ElectronicAddress",
+ "ElectronicAddressType",
+ "ExpiredCertsRevocationInfo",
+ "Extension",
+ "ExtensionType",
+ "ExtensionsListType",
+ "InternationalNamesType",
+ "MultiLangNormStringType",
+ "MultiLangStringType",
+ "NextUpdate",
+ "NextUpdateType",
+ "NonEmptyMultiLangURIListType",
+ "NonEmptyMultiLangURIType",
+ "NonEmptyURIListType",
+ "OtherTSLPointer",
+ "OtherTSLPointerType",
+ "OtherTSLPointersType",
+ "PointersToOtherTSL",
+ "PolicyOrLegalNotice",
+ "PolicyOrLegalnoticeType",
+ "PostalAddress",
+ "PostalAddressListType",
+ "PostalAddressType",
+ "PostalAddresses",
+ "SchemeInformation",
+ "SchemeInformationURI",
+ "SchemeName",
+ "SchemeOperatorName",
+ "SchemeTerritory",
+ "SchemeTypeCommunityRules",
+ "ServiceDigitalIdentities",
+ "ServiceDigitalIdentity",
+ "ServiceDigitalIdentityListType",
+ "ServiceHistory",
+ "ServiceHistoryInstance",
+ "ServiceHistoryInstanceType",
+ "ServiceHistoryType",
+ "ServiceInformation",
+ "ServiceStatus",
+ "ServiceSupplyPoints",
+ "ServiceSupplyPointsType",
+ "ServiceTypeIdentifier",
+ "TSLSchemeInformationType",
+ "TSLType",
+ "TSPInformation",
+ "TSPInformationType",
+ "TSPService",
+ "TSPServiceInformationType",
+ "TSPServiceType",
+ "TSPServices",
+ "TSPServicesListType",
+ "TSPType",
+ "TrustServiceProvider",
+ "TrustServiceProviderList",
+ "TrustServiceProviderListType",
+ "TrustServiceStatusList",
+ "TrustStatusListType",
+ "AllDataObjectsTimeStamp",
+ "Anytype",
+ "XadesAnyType",
+ "ArchiveTimeStamp",
+ "AttrAuthoritiesCertValues",
+ "AttributeCertificateRefs",
+ "AttributeRevocationRefs",
+ "AttributeRevocationValues",
+ "CRLIdentifierType",
+ "CRLRefType",
+ "CRLRefsType",
+ "CRLValuesType",
+ "CertIDListType",
+ "CertIDType",
+ "CertificateValues",
+ "CertificateValuesType",
+ "CertifiedRolesListType",
+ "ClaimedRolesListType",
+ "CommitmentTypeIndication",
+ "CommitmentTypeIndicationType",
+ "CommitmentTypeQualifiersListType",
+ "CompleteCertificateRefs",
+ "CompleteCertificateRefsType",
+ "CompleteRevocationRefs",
+ "CompleteRevocationRefsType",
+ "CounterSignature",
+ "CounterSignatureType",
+ "DataObjectFormat",
+ "DataObjectFormatType",
+ "DigestAlgAndValueType",
+ "DocumentationReferencesType",
+ "EncapsulatedPKIData",
+ "EncapsulatedPKIDataType",
+ "GenericTimeStampType",
+ "IdentifierType",
+ "Include",
+ "IncludeType",
+ "IndividualDataObjectsTimeStamp",
+ "IntegerListType",
+ "NoticeReferenceType",
+ "OCSPIdentifierType",
+ "OCSPRefType",
+ "OCSPRefsType",
+ "OCSPValuesType",
+ "ObjectIdentifier",
+ "ObjectIdentifierType",
+ "OtherCertStatusRefsType",
+ "OtherCertStatusValuesType",
+ "OtherTimeStamp",
+ "OtherTimeStampType",
+ "QualifierType",
+ "QualifyingProperties",
+ "QualifyingPropertiesReference",
+ "QualifyingPropertiesReferenceType",
+ "QualifyingPropertiesType",
+ "ReferenceInfo",
+ "ReferenceInfoType",
+ "RefsOnlyTimeStamp",
+ "ResponderIDType",
+ "RevocationValues",
+ "RevocationValuesType",
+ "SPURI",
+ "SPUserNotice",
+ "SPUserNoticeType",
+ "SigAndRefsTimeStamp",
+ "SigPolicyQualifiersListType",
+ "SignaturePolicyIdType",
+ "SignaturePolicyIdentifier",
+ "SignaturePolicyIdentifierType",
+ "SignatureProductionPlace",
+ "SignatureProductionPlaceType",
+ "SignatureTimeStamp",
+ "SignedDataObjectProperties",
+ "SignedDataObjectPropertiesType",
+ "SignedProperties",
+ "SignedPropertiesType",
+ "SignedSignatureProperties",
+ "SignedSignaturePropertiesType",
+ "SignerRole",
+ "SignerRoleType",
+ "SigningCertificate",
+ "SigningTime",
+ "UnsignedDataObjectProperties",
+ "UnsignedDataObjectPropertiesType",
+ "UnsignedProperties",
+ "UnsignedPropertiesType",
+ "UnsignedSignatureProperties",
+ "UnsignedSignaturePropertiesType",
+ "XAdESTimeStamp",
+ "XAdESTimeStampType",
+]
diff --git a/pyhanko/generated/etsi/ts_11910202.py b/pyhanko/generated/etsi/ts_11910202.py
new file mode 100644
index 00000000..381de626
--- /dev/null
+++ b/pyhanko/generated/etsi/ts_11910202.py
@@ -0,0 +1,1779 @@
+from dataclasses import dataclass, field
+from enum import Enum
+from typing import Optional, Tuple
+
+from xsdata.models.datatype import XmlDateTime
+
+from ..w3c.xmldsig_core import DigestMethod, Signature, SignatureValue
+from .ts_119612 import DigitalIdentityType, TSPInformationType
+from .xades import DigestAlgAndValueType, SignaturePolicyIdentifierType
+
+__NAMESPACE__ = "http://uri.etsi.org/19102/v1.2.1#"
+
+
+@dataclass(frozen=True)
+class ConstraintStatusType:
+ status: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Status",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ overridden_by: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "OverriddenBy",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class NsPrefixMappingType:
+ namespace_uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "NamespaceURI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ namespace_prefix: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "NamespacePrefix",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SAFilterType:
+ filter: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Filter",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SAOCSPIDType:
+ produced_at: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "ProducedAt",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ responder_idby_name: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ResponderIDByName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ responder_idby_key: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "ResponderIDByKey",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "format": "base64",
+ },
+ )
+
+
+class SAOneSignerRoleTypeEndorsementType(Enum):
+ CERTIFIED = "certified"
+ CLAIMED = "claimed"
+ SIGNED = "signed"
+
+
+@dataclass(frozen=True)
+class SignatureQualityType:
+ signature_quality_information: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignatureQualityInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureValidationProcessType:
+ signature_validation_process_id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValidationProcessID",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_validation_service_policy: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValidationServicePolicy",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_validation_practice_statement: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValidationPracticeStatement",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TypedDataType:
+ type_value: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Type",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ value: Optional[object] = field(
+ default=None,
+ metadata={
+ "name": "Value",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class VOReferenceType:
+ any_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ },
+ )
+ voreference: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "VOReference",
+ "type": "Attribute",
+ "required": True,
+ "tokens": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class AdditionalValidationReportDataType:
+ report_data: Tuple[TypedDataType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ReportData",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class AttributeBaseType:
+ attribute_object: Tuple[VOReferenceType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttributeObject",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signed: Optional[bool] = field(
+ default=None,
+ metadata={
+ "name": "Signed",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CertificateChainType:
+ signing_certificate: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "SigningCertificate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ intermediate_certificate: Tuple[VOReferenceType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "IntermediateCertificate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ trust_anchor: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "TrustAnchor",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CryptoInformationType:
+ validation_object_id: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "ValidationObjectId",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ algorithm: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Algorithm",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ algorithm_parameters: Optional[TypedDataType] = field(
+ default=None,
+ metadata={
+ "name": "AlgorithmParameters",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ secure_algorithm: Optional[bool] = field(
+ default=None,
+ metadata={
+ "name": "SecureAlgorithm",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ not_after: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "NotAfter",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class POEType:
+ poetime: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "POETime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ type_of_proof: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "TypeOfProof",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ poeobject: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "POEObject",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class RevocationStatusInformationType:
+ validation_object_id: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "ValidationObjectId",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ revocation_time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "RevocationTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ revocation_reason: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "RevocationReason",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ revocation_object: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "RevocationObject",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SACRLIDType:
+ digest_method: Optional[DigestMethod] = field(
+ default=None,
+ metadata={
+ "name": "DigestMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ digest_value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "DigestValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SACertIDType:
+ x509_issuer_serial: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "X509IssuerSerial",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "format": "base64",
+ },
+ )
+ digest_method: Optional[DigestMethod] = field(
+ default=None,
+ metadata={
+ "name": "DigestMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ digest_value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "DigestValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SAOneSignerRoleType:
+ role: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Role",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ endorsement_type: Optional[SAOneSignerRoleTypeEndorsementType] = field(
+ default=None,
+ metadata={
+ "name": "EndorsementType",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureIdentifierType:
+ digest_alg_and_value: Optional[DigestAlgAndValueType] = field(
+ default=None,
+ metadata={
+ "name": "DigestAlgAndValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_value: Optional[SignatureValue] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ hash_only: Optional[bool] = field(
+ default=None,
+ metadata={
+ "name": "HashOnly",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ doc_hash_only: Optional[bool] = field(
+ default=None,
+ metadata={
+ "name": "DocHashOnly",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ daidentifier: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "DAIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureValidationPolicyType:
+ signature_policy_identifier: Optional[
+ SignaturePolicyIdentifierType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "SignaturePolicyIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ policy_name: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "PolicyName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ formal_policy_uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "FormalPolicyURI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ readable_policy_uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ReadablePolicyURI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ formal_policy_object: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "FormalPolicyObject",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureValidatorType:
+ digital_id: Tuple[DigitalIdentityType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "DigitalId",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "min_occurs": 1,
+ },
+ )
+ tspinformation: Optional[TSPInformationType] = field(
+ default=None,
+ metadata={
+ "name": "TSPInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignerInformationType:
+ signer_certificate: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "SignerCertificate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ signer: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Signer",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+ pseudonym: Optional[bool] = field(
+ default=None,
+ metadata={
+ "name": "Pseudonym",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignersDocumentType:
+ digest_alg_and_value: Optional[DigestAlgAndValueType] = field(
+ default=None,
+ metadata={
+ "name": "DigestAlgAndValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ signers_document_representation: Tuple[VOReferenceType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignersDocumentRepresentation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "min_occurs": 1,
+ "max_occurs": 2,
+ "sequence": 1,
+ },
+ )
+ signers_document_ref: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "SignersDocumentRef",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationObjectRepresentationType:
+ direct: Optional[object] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ base64: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "format": "base64",
+ },
+ )
+ digest_alg_and_value: Optional[DigestAlgAndValueType] = field(
+ default=None,
+ metadata={
+ "name": "DigestAlgAndValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class XAdESSignaturePtrType:
+ ns_prefix_mapping: Tuple[NsPrefixMappingType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "NsPrefixMapping",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ which_document: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "WhichDocument",
+ "type": "Attribute",
+ },
+ )
+ xpath: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "XPath",
+ "type": "Attribute",
+ },
+ )
+ schema_refs: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SchemaRefs",
+ "type": "Attribute",
+ "tokens": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SACertIDListType(AttributeBaseType):
+ cert_id: Tuple[SACertIDType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CertID",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SACommitmentTypeIndicationType(AttributeBaseType):
+ commitment_type_identifier: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "CommitmentTypeIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SAContactInfoType(AttributeBaseType):
+ contact_info_element: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ContactInfoElement",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SADSSType(AttributeBaseType):
+ certs: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "Certs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ crls: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "CRLs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ ocsps: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "OCSPs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SADataObjectFormatType(AttributeBaseType):
+ content_type: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ContentType",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ mime_type: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "MimeType",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SAMessageDigestType(AttributeBaseType):
+ digest: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "Digest",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SANameType(AttributeBaseType):
+ name_element: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "NameElement",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SAReasonType(AttributeBaseType):
+ reason_element: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ReasonElement",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SARevIDListType(AttributeBaseType):
+ crlid: Tuple[SACRLIDType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CRLID",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ ocspid: Tuple[SAOCSPIDType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "OCSPID",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SASigPolicyIdentifierType(AttributeBaseType):
+ sig_policy_id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "SigPolicyId",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SASignatureProductionPlaceType(AttributeBaseType):
+ address_string: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AddressString",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SASignerRoleType(AttributeBaseType):
+ role_details: Tuple[SAOneSignerRoleType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "RoleDetails",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SASigningTimeType(AttributeBaseType):
+ time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "Time",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SASubFilterType(AttributeBaseType):
+ sub_filter_element: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "SubFilterElement",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SATimestampType(AttributeBaseType):
+ time_stamp_value: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "TimeStampValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationReportDataType:
+ trust_anchor: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "TrustAnchor",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ certificate_chain: Optional[CertificateChainType] = field(
+ default=None,
+ metadata={
+ "name": "CertificateChain",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ related_validation_object: Tuple[VOReferenceType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "RelatedValidationObject",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ revocation_status_information: Optional[
+ RevocationStatusInformationType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "RevocationStatusInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ crypto_information: Optional[CryptoInformationType] = field(
+ default=None,
+ metadata={
+ "name": "CryptoInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ additional_validation_report_data: Optional[
+ AdditionalValidationReportDataType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "AdditionalValidationReportData",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationTimeInfoType:
+ validation_time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "ValidationTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ best_signature_time: Optional[POEType] = field(
+ default=None,
+ metadata={
+ "name": "BestSignatureTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class XAdESSignaturePtr(XAdESSignaturePtrType):
+ class Meta:
+ namespace = "http://uri.etsi.org/19102/v1.2.1#"
+
+
+@dataclass(frozen=True)
+class SAVRIType(AttributeBaseType):
+ certs: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "Certs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ crls: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "CRLs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ ocsps: Optional[VOReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "OCSPs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ tu: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "TU",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ ts: Optional[SATimestampType] = field(
+ default=None,
+ metadata={
+ "name": "TS",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureReferenceType:
+ canonicalization_method: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "CanonicalizationMethod",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ digest_method: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "DigestMethod",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ digest_value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "DigestValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "format": "base64",
+ },
+ )
+ xad_essignature_ptr: Optional[XAdESSignaturePtr] = field(
+ default=None,
+ metadata={
+ "name": "XAdESSignaturePtr",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ pad_esfield_name: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "PAdESFieldName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationStatusType:
+ main_indication: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "MainIndication",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ sub_indication: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SubIndication",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ associated_validation_report_data: Tuple[
+ ValidationReportDataType, ...
+ ] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AssociatedValidationReportData",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class IndividualValidationConstraintReportType:
+ validation_constraint_identifier: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ValidationConstraintIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ validation_constraint_parameter: Tuple[TypedDataType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ValidationConstraintParameter",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ constraint_status: Optional[ConstraintStatusType] = field(
+ default=None,
+ metadata={
+ "name": "ConstraintStatus",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ validation_status: Optional[ValidationStatusType] = field(
+ default=None,
+ metadata={
+ "name": "ValidationStatus",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ indications: Optional[object] = field(
+ default=None,
+ metadata={
+ "name": "Indications",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class POEProvisioningType:
+ poetime: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "POETime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ validation_object: Tuple[VOReferenceType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ValidationObject",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_reference: Tuple[SignatureReferenceType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignatureReference",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SACounterSignatureType(AttributeBaseType):
+ counter_signature: Optional[SignatureReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "CounterSignature",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureReference(SignatureReferenceType):
+ class Meta:
+ namespace = "http://uri.etsi.org/19102/v1.2.1#"
+
+
+@dataclass(frozen=True)
+class SignatureAttributesType:
+ signing_time: Tuple[SASigningTimeType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SigningTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signing_certificate: Tuple[SACertIDListType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SigningCertificate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ data_object_format: Tuple[SADataObjectFormatType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "DataObjectFormat",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ commitment_type_indication: Tuple[
+ SACommitmentTypeIndicationType, ...
+ ] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CommitmentTypeIndication",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ all_data_objects_time_stamp: Tuple[SATimestampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AllDataObjectsTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ individual_data_objects_time_stamp: Tuple[SATimestampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "IndividualDataObjectsTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ sig_policy_identifier: Tuple[SASigPolicyIdentifierType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SigPolicyIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_production_place: Tuple[
+ SASignatureProductionPlaceType, ...
+ ] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignatureProductionPlace",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signer_role: Tuple[SASignerRoleType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignerRole",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ counter_signature: Tuple[SACounterSignatureType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CounterSignature",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_time_stamp: Tuple[SATimestampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignatureTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ complete_certificate_refs: Tuple[SACertIDListType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CompleteCertificateRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ complete_revocation_refs: Tuple[SARevIDListType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CompleteRevocationRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ attribute_certificate_refs: Tuple[SACertIDListType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttributeCertificateRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ attribute_revocation_refs: Tuple[SARevIDListType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttributeRevocationRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ sig_and_refs_time_stamp: Tuple[SATimestampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SigAndRefsTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ refs_only_time_stamp: Tuple[SATimestampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "RefsOnlyTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ certificate_values: Tuple[AttributeBaseType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CertificateValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ revocation_values: Tuple[AttributeBaseType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "RevocationValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ attr_authorities_cert_values: Tuple[AttributeBaseType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttrAuthoritiesCertValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ attribute_revocation_values: Tuple[AttributeBaseType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttributeRevocationValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ time_stamp_validation_data: Tuple[AttributeBaseType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "TimeStampValidationData",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ archive_time_stamp: Tuple[SATimestampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ArchiveTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ renewed_digests: Tuple[Tuple[int, ...], ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "RenewedDigests",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "tokens": True,
+ },
+ )
+ message_digest: Tuple[SAMessageDigestType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "MessageDigest",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ dss: Tuple[SADSSType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "DSS",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ vri: Tuple[SAVRIType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "VRI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ doc_time_stamp: Tuple[SATimestampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "DocTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ reason: Tuple[SAReasonType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Reason",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ name: Tuple[SANameType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Name",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ contact_info: Tuple[SAContactInfoType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ContactInfo",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ sub_filter: Tuple[SASubFilterType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SubFilter",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ byte_range: Tuple[Tuple[int, ...], ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ByteRange",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "tokens": True,
+ },
+ )
+ filter: Tuple[SAFilterType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Filter",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ other_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationConstraintsEvaluationReportType:
+ signature_validation_policy: Optional[
+ SignatureValidationPolicyType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValidationPolicy",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ validation_constraint: Tuple[
+ IndividualValidationConstraintReportType, ...
+ ] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ValidationConstraint",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureValidationReportType:
+ signature_identifier: Optional[SignatureIdentifierType] = field(
+ default=None,
+ metadata={
+ "name": "SignatureIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ validation_constraints_evaluation_report: Optional[
+ ValidationConstraintsEvaluationReportType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "ValidationConstraintsEvaluationReport",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ validation_time_info: Optional[ValidationTimeInfoType] = field(
+ default=None,
+ metadata={
+ "name": "ValidationTimeInfo",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signers_document: Optional[SignersDocumentType] = field(
+ default=None,
+ metadata={
+ "name": "SignersDocument",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_attributes: Optional[SignatureAttributesType] = field(
+ default=None,
+ metadata={
+ "name": "SignatureAttributes",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signer_information: Optional[SignerInformationType] = field(
+ default=None,
+ metadata={
+ "name": "SignerInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_quality: Optional[SignatureQualityType] = field(
+ default=None,
+ metadata={
+ "name": "SignatureQuality",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_validation_process: Optional[
+ SignatureValidationProcessType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValidationProcess",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_validation_status: Optional[ValidationStatusType] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValidationStatus",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ any_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationObjectType:
+ object_type: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ObjectType",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ validation_object_representation: Optional[
+ ValidationObjectRepresentationType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "ValidationObjectRepresentation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "required": True,
+ },
+ )
+ poe: Optional[POEType] = field(
+ default=None,
+ metadata={
+ "name": "POE",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ poeprovisioning: Optional[POEProvisioningType] = field(
+ default=None,
+ metadata={
+ "name": "POEProvisioning",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ validation_report: Optional[SignatureValidationReportType] = field(
+ default=None,
+ metadata={
+ "name": "ValidationReport",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationObjectListType:
+ validation_object: Tuple[ValidationObjectType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ValidationObject",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationReportType:
+ signature_validation_report: Tuple[
+ SignatureValidationReportType, ...
+ ] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignatureValidationReport",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ "min_occurs": 1,
+ },
+ )
+ signature_validation_objects: Optional[ValidationObjectListType] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValidationObjects",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature_validator: Optional[SignatureValidatorType] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValidator",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/19102/v1.2.1#",
+ },
+ )
+ signature: Optional[Signature] = field(
+ default=None,
+ metadata={
+ "name": "Signature",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ValidationReport(ValidationReportType):
+ class Meta:
+ namespace = "http://uri.etsi.org/19102/v1.2.1#"
diff --git a/pyhanko/generated/etsi/ts_119612.py b/pyhanko/generated/etsi/ts_119612.py
new file mode 100644
index 00000000..4513017a
--- /dev/null
+++ b/pyhanko/generated/etsi/ts_119612.py
@@ -0,0 +1,1182 @@
+from dataclasses import dataclass, field
+from typing import Optional, Tuple, Union
+
+from xsdata.models.datatype import XmlDateTime
+
+from ..w3c.xmldsig_core import KeyValue, Signature
+from ..xml import Langvalue
+
+__NAMESPACE__ = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class AnyType:
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class AttributedNonEmptyURIType:
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ type_value: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "type",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ExpiredCertsRevocationInfo:
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+ value: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class NextUpdateType:
+ date_time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "dateTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class NonEmptyURIListType:
+ uri: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "URI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ "min_length": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SchemeTerritory:
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ServiceStatus:
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ "min_length": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ServiceTypeIdentifier:
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ "min_length": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TSLType:
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ "min_length": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DigitalIdentityType:
+ x509_certificate: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "X509Certificate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "format": "base64",
+ },
+ )
+ x509_subject_name: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "X509SubjectName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ key_value: Optional[KeyValue] = field(
+ default=None,
+ metadata={
+ "name": "KeyValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ x509_ski: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "X509SKI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "format": "base64",
+ },
+ )
+ other: Optional[AnyType] = field(
+ default=None,
+ metadata={
+ "name": "Other",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DistributionPoints(NonEmptyURIListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ExtensionType(AnyType):
+ critical: Optional[bool] = field(
+ default=None,
+ metadata={
+ "name": "Critical",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class MultiLangNormStringType:
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ lang: Optional[Union[str, Langvalue]] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "namespace": "http://www.w3.org/XML/1998/namespace",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class MultiLangStringType:
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ lang: Optional[Union[str, Langvalue]] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "namespace": "http://www.w3.org/XML/1998/namespace",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class NextUpdate(NextUpdateType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class NonEmptyMultiLangURIType:
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ lang: Optional[Union[str, Langvalue]] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "namespace": "http://www.w3.org/XML/1998/namespace",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class PostalAddressType:
+ street_address: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "StreetAddress",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ locality: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Locality",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ state_or_province: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "StateOrProvince",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_length": 1,
+ },
+ )
+ postal_code: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "PostalCode",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_length": 1,
+ },
+ )
+ country_name: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "CountryName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ lang: Optional[Union[str, Langvalue]] = field(
+ default=None,
+ metadata={
+ "type": "Attribute",
+ "namespace": "http://www.w3.org/XML/1998/namespace",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ServiceSupplyPointsType:
+ service_supply_point: Tuple[AttributedNonEmptyURIType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ServiceSupplyPoint",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class AdditionalInformationType:
+ textual_information: Tuple[MultiLangStringType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "TextualInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ other_information: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "OtherInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class AdditionalServiceInformationType:
+ uri: Optional[NonEmptyMultiLangURIType] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ information_value: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "InformationValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ other_information: Optional[AnyType] = field(
+ default=None,
+ metadata={
+ "name": "OtherInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DigitalIdentityListType:
+ digital_id: Tuple[DigitalIdentityType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "DigitalId",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ElectronicAddressType:
+ uri: Tuple[NonEmptyMultiLangURIType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "URI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class Extension(ExtensionType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class InternationalNamesType:
+ name: Tuple[MultiLangNormStringType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Name",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class NonEmptyMultiLangURIListType:
+ uri: Tuple[NonEmptyMultiLangURIType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "URI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class PolicyOrLegalnoticeType:
+ tslpolicy: Tuple[NonEmptyMultiLangURIType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "TSLPolicy",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ tsllegal_notice: Tuple[MultiLangStringType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "TSLLegalNotice",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class PostalAddress(PostalAddressType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ServiceSupplyPoints(ServiceSupplyPointsType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class AdditionalInformation(AdditionalInformationType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class AdditionalServiceInformation(AdditionalServiceInformationType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ElectronicAddress(ElectronicAddressType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ExtensionsListType:
+ extension: Tuple[Extension, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Extension",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class PolicyOrLegalNotice(PolicyOrLegalnoticeType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class PostalAddressListType:
+ postal_address: Tuple[PostalAddress, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "PostalAddress",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SchemeInformationURI(NonEmptyMultiLangURIListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class SchemeName(InternationalNamesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class SchemeOperatorName(InternationalNamesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class SchemeTypeCommunityRules(NonEmptyMultiLangURIListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ServiceDigitalIdentity(DigitalIdentityListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class PostalAddresses(PostalAddressListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ServiceDigitalIdentityListType:
+ service_digital_identity: Tuple[ServiceDigitalIdentity, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ServiceDigitalIdentity",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ServiceHistoryInstanceType:
+ service_type_identifier: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ServiceTypeIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ service_name: Optional[InternationalNamesType] = field(
+ default=None,
+ metadata={
+ "name": "ServiceName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ service_digital_identity: Optional[ServiceDigitalIdentity] = field(
+ default=None,
+ metadata={
+ "name": "ServiceDigitalIdentity",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ service_status: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ServiceStatus",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ status_starting_time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "StatusStartingTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ service_information_extensions: Optional[ExtensionsListType] = field(
+ default=None,
+ metadata={
+ "name": "ServiceInformationExtensions",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TSPServiceInformationType:
+ service_type_identifier: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ServiceTypeIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ service_name: Optional[InternationalNamesType] = field(
+ default=None,
+ metadata={
+ "name": "ServiceName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ service_digital_identity: Optional[ServiceDigitalIdentity] = field(
+ default=None,
+ metadata={
+ "name": "ServiceDigitalIdentity",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ service_status: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ServiceStatus",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ status_starting_time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "StatusStartingTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ scheme_service_definition_uri: Optional[
+ NonEmptyMultiLangURIListType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "SchemeServiceDefinitionURI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ service_supply_points: Optional[ServiceSupplyPoints] = field(
+ default=None,
+ metadata={
+ "name": "ServiceSupplyPoints",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ tspservice_definition_uri: Optional[NonEmptyMultiLangURIListType] = field(
+ default=None,
+ metadata={
+ "name": "TSPServiceDefinitionURI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ service_information_extensions: Optional[ExtensionsListType] = field(
+ default=None,
+ metadata={
+ "name": "ServiceInformationExtensions",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class AddressType:
+ postal_addresses: Optional[PostalAddresses] = field(
+ default=None,
+ metadata={
+ "name": "PostalAddresses",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ electronic_address: Optional[ElectronicAddress] = field(
+ default=None,
+ metadata={
+ "name": "ElectronicAddress",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ServiceDigitalIdentities(ServiceDigitalIdentityListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ServiceHistoryInstance(ServiceHistoryInstanceType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ServiceInformation(TSPServiceInformationType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class OtherTSLPointerType:
+ service_digital_identities: Optional[ServiceDigitalIdentities] = field(
+ default=None,
+ metadata={
+ "name": "ServiceDigitalIdentities",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ tsllocation: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "TSLLocation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ additional_information: Optional[AdditionalInformation] = field(
+ default=None,
+ metadata={
+ "name": "AdditionalInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ServiceHistoryType:
+ service_history_instance: Tuple[ServiceHistoryInstance, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ServiceHistoryInstance",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TSPInformationType:
+ tspname: Optional[InternationalNamesType] = field(
+ default=None,
+ metadata={
+ "name": "TSPName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ tsptrade_name: Optional[InternationalNamesType] = field(
+ default=None,
+ metadata={
+ "name": "TSPTradeName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ tspaddress: Optional[AddressType] = field(
+ default=None,
+ metadata={
+ "name": "TSPAddress",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ tspinformation_uri: Optional[NonEmptyMultiLangURIListType] = field(
+ default=None,
+ metadata={
+ "name": "TSPInformationURI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ tspinformation_extensions: Optional[ExtensionsListType] = field(
+ default=None,
+ metadata={
+ "name": "TSPInformationExtensions",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class OtherTSLPointer(OtherTSLPointerType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class ServiceHistory(ServiceHistoryType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class TSPInformation(TSPInformationType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class OtherTSLPointersType:
+ other_tslpointer: Tuple[OtherTSLPointer, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "OtherTSLPointer",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TSPServiceType:
+ service_information: Optional[ServiceInformation] = field(
+ default=None,
+ metadata={
+ "name": "ServiceInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ service_history: Optional[ServiceHistory] = field(
+ default=None,
+ metadata={
+ "name": "ServiceHistory",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class PointersToOtherTSL(OtherTSLPointersType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class TSPService(TSPServiceType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class TSLSchemeInformationType:
+ tslversion_identifier: Optional[int] = field(
+ default=None,
+ metadata={
+ "name": "TSLVersionIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ tslsequence_number: Optional[int] = field(
+ default=None,
+ metadata={
+ "name": "TSLSequenceNumber",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ tsltype: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "TSLType",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ scheme_operator_name: Optional[SchemeOperatorName] = field(
+ default=None,
+ metadata={
+ "name": "SchemeOperatorName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ scheme_operator_address: Optional[AddressType] = field(
+ default=None,
+ metadata={
+ "name": "SchemeOperatorAddress",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ scheme_name: Optional[SchemeName] = field(
+ default=None,
+ metadata={
+ "name": "SchemeName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ scheme_information_uri: Optional[SchemeInformationURI] = field(
+ default=None,
+ metadata={
+ "name": "SchemeInformationURI",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ status_determination_approach: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "StatusDeterminationApproach",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ "min_length": 1,
+ },
+ )
+ scheme_type_community_rules: Optional[SchemeTypeCommunityRules] = field(
+ default=None,
+ metadata={
+ "name": "SchemeTypeCommunityRules",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ scheme_territory: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "SchemeTerritory",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ policy_or_legal_notice: Optional[PolicyOrLegalNotice] = field(
+ default=None,
+ metadata={
+ "name": "PolicyOrLegalNotice",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ historical_information_period: Optional[int] = field(
+ default=None,
+ metadata={
+ "name": "HistoricalInformationPeriod",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ pointers_to_other_tsl: Optional[PointersToOtherTSL] = field(
+ default=None,
+ metadata={
+ "name": "PointersToOtherTSL",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ list_issue_date_time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "ListIssueDateTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ next_update: Optional[NextUpdate] = field(
+ default=None,
+ metadata={
+ "name": "NextUpdate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ distribution_points: Optional[DistributionPoints] = field(
+ default=None,
+ metadata={
+ "name": "DistributionPoints",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ scheme_extensions: Optional[ExtensionsListType] = field(
+ default=None,
+ metadata={
+ "name": "SchemeExtensions",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TSPServicesListType:
+ tspservice: Tuple[TSPService, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "TSPService",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SchemeInformation(TSLSchemeInformationType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class TSPServices(TSPServicesListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class TSPType:
+ tspinformation: Optional[TSPInformation] = field(
+ default=None,
+ metadata={
+ "name": "TSPInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ tspservices: Optional[TSPServices] = field(
+ default=None,
+ metadata={
+ "name": "TSPServices",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TrustServiceProvider(TSPType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class TrustServiceProviderListType:
+ trust_service_provider: Tuple[TrustServiceProvider, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "TrustServiceProvider",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TrustServiceProviderList(TrustServiceProviderListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
+
+
+@dataclass(frozen=True)
+class TrustStatusListType:
+ scheme_information: Optional[SchemeInformation] = field(
+ default=None,
+ metadata={
+ "name": "SchemeInformation",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ "required": True,
+ },
+ )
+ trust_service_provider_list: Optional[TrustServiceProviderList] = field(
+ default=None,
+ metadata={
+ "name": "TrustServiceProviderList",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/02231/v2#",
+ },
+ )
+ signature: Optional[Signature] = field(
+ default=None,
+ metadata={
+ "name": "Signature",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ tsltag: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "TSLTag",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TrustServiceStatusList(TrustStatusListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/02231/v2#"
diff --git a/pyhanko/generated/etsi/xades.py b/pyhanko/generated/etsi/xades.py
new file mode 100644
index 00000000..15b7de70
--- /dev/null
+++ b/pyhanko/generated/etsi/xades.py
@@ -0,0 +1,1557 @@
+from dataclasses import dataclass, field
+from enum import Enum
+from typing import Dict, Optional, Tuple
+
+from xsdata.models.datatype import XmlDateTime
+
+from ..w3c.xmldsig_core import (
+ CanonicalizationMethod,
+ DigestMethod,
+ Signature,
+ Transforms,
+ X509IssuerSerialType,
+)
+
+__NAMESPACE__ = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class AnyType:
+ any_attributes: Dict[str, str] = field(
+ default_factory=dict,
+ metadata={
+ "type": "Attributes",
+ "namespace": "##any",
+ },
+ )
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CRLIdentifierType:
+ issuer: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Issuer",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ issue_time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "IssueTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ number: Optional[int] = field(
+ default=None,
+ metadata={
+ "name": "Number",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DocumentationReferencesType:
+ documentation_reference: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "DocumentationReference",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class EncapsulatedPKIDataType:
+ value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "required": True,
+ "format": "base64",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+ encoding: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Encoding",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class IncludeType:
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ referenced_data: Optional[bool] = field(
+ default=None,
+ metadata={
+ "name": "referencedData",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class IntegerListType:
+ int_value: Tuple[int, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "int",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+class QualifierType(Enum):
+ OIDAS_URI = "OIDAsURI"
+ OIDAS_URN = "OIDAsURN"
+
+
+@dataclass(frozen=True)
+class QualifyingPropertiesReferenceType:
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ResponderIDType:
+ by_name: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ByName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ by_key: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "ByKey",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "format": "base64",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SPURI:
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureProductionPlaceType:
+ city: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "City",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ state_or_province: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "StateOrProvince",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ postal_code: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "PostalCode",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ country_name: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "CountryName",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SigningTime:
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+ value: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class Anytype(AnyType):
+ class Meta:
+ name = "Any"
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class CRLValuesType:
+ encapsulated_crlvalue: Tuple[EncapsulatedPKIDataType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "EncapsulatedCRLValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CertificateValuesType:
+ encapsulated_x509_certificate: Tuple[EncapsulatedPKIDataType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "EncapsulatedX509Certificate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ other_certificate: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "OtherCertificate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CertifiedRolesListType:
+ certified_role: Tuple[EncapsulatedPKIDataType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CertifiedRole",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ClaimedRolesListType:
+ claimed_role: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ClaimedRole",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CommitmentTypeQualifiersListType:
+ commitment_type_qualifier: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CommitmentTypeQualifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CounterSignatureType:
+ signature: Optional[Signature] = field(
+ default=None,
+ metadata={
+ "name": "Signature",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DigestAlgAndValueType:
+ digest_method: Optional[DigestMethod] = field(
+ default=None,
+ metadata={
+ "name": "DigestMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ digest_value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "DigestValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class EncapsulatedPKIData(EncapsulatedPKIDataType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class IdentifierType:
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ },
+ )
+ qualifier: Optional[QualifierType] = field(
+ default=None,
+ metadata={
+ "name": "Qualifier",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class Include(IncludeType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class NoticeReferenceType:
+ organization: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Organization",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ notice_numbers: Optional[IntegerListType] = field(
+ default=None,
+ metadata={
+ "name": "NoticeNumbers",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class OCSPIdentifierType:
+ responder_id: Optional[ResponderIDType] = field(
+ default=None,
+ metadata={
+ "name": "ResponderID",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ produced_at: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "ProducedAt",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class OCSPValuesType:
+ encapsulated_ocspvalue: Tuple[EncapsulatedPKIDataType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "EncapsulatedOCSPValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class OtherCertStatusRefsType:
+ other_ref: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "OtherRef",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class OtherCertStatusValuesType:
+ other_value: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "OtherValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class QualifyingPropertiesReference(QualifyingPropertiesReferenceType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class ReferenceInfoType:
+ digest_method: Optional[DigestMethod] = field(
+ default=None,
+ metadata={
+ "name": "DigestMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ digest_value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "DigestValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SigPolicyQualifiersListType:
+ sig_policy_qualifier: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SigPolicyQualifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureProductionPlace(SignatureProductionPlaceType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class UnsignedDataObjectPropertiesType:
+ unsigned_data_object_property: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "UnsignedDataObjectProperty",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class AttrAuthoritiesCertValues(CertificateValuesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class CRLRefType:
+ digest_alg_and_value: Optional[DigestAlgAndValueType] = field(
+ default=None,
+ metadata={
+ "name": "DigestAlgAndValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ crlidentifier: Optional[CRLIdentifierType] = field(
+ default=None,
+ metadata={
+ "name": "CRLIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CertIDType:
+ cert_digest: Optional[DigestAlgAndValueType] = field(
+ default=None,
+ metadata={
+ "name": "CertDigest",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ issuer_serial: Optional[X509IssuerSerialType] = field(
+ default=None,
+ metadata={
+ "name": "IssuerSerial",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CertificateValues(CertificateValuesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class CounterSignature(CounterSignatureType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class OCSPRefType:
+ ocspidentifier: Optional[OCSPIdentifierType] = field(
+ default=None,
+ metadata={
+ "name": "OCSPIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ digest_alg_and_value: Optional[DigestAlgAndValueType] = field(
+ default=None,
+ metadata={
+ "name": "DigestAlgAndValue",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ObjectIdentifierType:
+ identifier: Optional[IdentifierType] = field(
+ default=None,
+ metadata={
+ "name": "Identifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ description: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Description",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ documentation_references: Optional[DocumentationReferencesType] = field(
+ default=None,
+ metadata={
+ "name": "DocumentationReferences",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ReferenceInfo(ReferenceInfoType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class RevocationValuesType:
+ crlvalues: Optional[CRLValuesType] = field(
+ default=None,
+ metadata={
+ "name": "CRLValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ ocspvalues: Optional[OCSPValuesType] = field(
+ default=None,
+ metadata={
+ "name": "OCSPValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ other_values: Optional[OtherCertStatusValuesType] = field(
+ default=None,
+ metadata={
+ "name": "OtherValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SPUserNoticeType:
+ notice_ref: Optional[NoticeReferenceType] = field(
+ default=None,
+ metadata={
+ "name": "NoticeRef",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ explicit_text: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ExplicitText",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignerRoleType:
+ claimed_roles: Optional[ClaimedRolesListType] = field(
+ default=None,
+ metadata={
+ "name": "ClaimedRoles",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ certified_roles: Optional[CertifiedRolesListType] = field(
+ default=None,
+ metadata={
+ "name": "CertifiedRoles",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class UnsignedDataObjectProperties(UnsignedDataObjectPropertiesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class AttributeRevocationValues(RevocationValuesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class CRLRefsType:
+ crlref: Tuple[CRLRefType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CRLRef",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CertIDListType:
+ cert: Tuple[CertIDType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Cert",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CommitmentTypeIndicationType:
+ commitment_type_id: Optional[ObjectIdentifierType] = field(
+ default=None,
+ metadata={
+ "name": "CommitmentTypeId",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ object_reference: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ObjectReference",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ all_signed_data_objects: Optional[object] = field(
+ default=None,
+ metadata={
+ "name": "AllSignedDataObjects",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ commitment_type_qualifiers: Optional[
+ CommitmentTypeQualifiersListType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "CommitmentTypeQualifiers",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DataObjectFormatType:
+ description: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Description",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ object_identifier: Optional[ObjectIdentifierType] = field(
+ default=None,
+ metadata={
+ "name": "ObjectIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ mime_type: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "MimeType",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ encoding: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Encoding",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ object_reference: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "ObjectReference",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class GenericTimeStampType:
+ include: Tuple[Include, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Include",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ reference_info: Tuple[ReferenceInfo, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ReferenceInfo",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ canonicalization_method: Optional[CanonicalizationMethod] = field(
+ default=None,
+ metadata={
+ "name": "CanonicalizationMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ encapsulated_time_stamp: Tuple[EncapsulatedPKIDataType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "EncapsulatedTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ xmltime_stamp: Tuple[AnyType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "XMLTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class OCSPRefsType:
+ ocspref: Tuple[OCSPRefType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "OCSPRef",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ObjectIdentifier(ObjectIdentifierType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class RevocationValues(RevocationValuesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class SPUserNotice(SPUserNoticeType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class SignaturePolicyIdType:
+ sig_policy_id: Optional[ObjectIdentifierType] = field(
+ default=None,
+ metadata={
+ "name": "SigPolicyId",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ transforms: Optional[Transforms] = field(
+ default=None,
+ metadata={
+ "name": "Transforms",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ sig_policy_hash: Optional[DigestAlgAndValueType] = field(
+ default=None,
+ metadata={
+ "name": "SigPolicyHash",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ sig_policy_qualifiers: Optional[SigPolicyQualifiersListType] = field(
+ default=None,
+ metadata={
+ "name": "SigPolicyQualifiers",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignerRole(SignerRoleType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class CommitmentTypeIndication(CommitmentTypeIndicationType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class CompleteCertificateRefsType:
+ cert_refs: Optional[CertIDListType] = field(
+ default=None,
+ metadata={
+ "name": "CertRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "required": True,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CompleteRevocationRefsType:
+ crlrefs: Optional[CRLRefsType] = field(
+ default=None,
+ metadata={
+ "name": "CRLRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ ocsprefs: Optional[OCSPRefsType] = field(
+ default=None,
+ metadata={
+ "name": "OCSPRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ other_refs: Optional[OtherCertStatusRefsType] = field(
+ default=None,
+ metadata={
+ "name": "OtherRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DataObjectFormat(DataObjectFormatType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class OtherTimeStampType(GenericTimeStampType):
+ reference_info: Tuple[ReferenceInfo, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ReferenceInfo",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignaturePolicyIdentifierType:
+ signature_policy_id: Optional[SignaturePolicyIdType] = field(
+ default=None,
+ metadata={
+ "name": "SignaturePolicyId",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ signature_policy_implied: Optional[object] = field(
+ default=None,
+ metadata={
+ "name": "SignaturePolicyImplied",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SigningCertificate(CertIDListType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class XAdESTimeStampType(GenericTimeStampType):
+ pass
+
+
+@dataclass(frozen=True)
+class AllDataObjectsTimeStamp(XAdESTimeStampType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class ArchiveTimeStamp(XAdESTimeStampType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class AttributeCertificateRefs(CompleteCertificateRefsType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class AttributeRevocationRefs(CompleteRevocationRefsType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class CompleteCertificateRefs(CompleteCertificateRefsType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class CompleteRevocationRefs(CompleteRevocationRefsType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class IndividualDataObjectsTimeStamp(XAdESTimeStampType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class OtherTimeStamp(OtherTimeStampType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class RefsOnlyTimeStamp(XAdESTimeStampType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class SigAndRefsTimeStamp(XAdESTimeStampType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class SignaturePolicyIdentifier(SignaturePolicyIdentifierType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class SignatureTimeStamp(XAdESTimeStampType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class SignedDataObjectPropertiesType:
+ data_object_format: Tuple[DataObjectFormatType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "DataObjectFormat",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ commitment_type_indication: Tuple[
+ CommitmentTypeIndicationType, ...
+ ] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CommitmentTypeIndication",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ all_data_objects_time_stamp: Tuple[XAdESTimeStampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AllDataObjectsTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ individual_data_objects_time_stamp: Tuple[XAdESTimeStampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "IndividualDataObjectsTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignedSignaturePropertiesType:
+ signing_time: Optional[XmlDateTime] = field(
+ default=None,
+ metadata={
+ "name": "SigningTime",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ signing_certificate: Optional[CertIDListType] = field(
+ default=None,
+ metadata={
+ "name": "SigningCertificate",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ signature_policy_identifier: Optional[
+ SignaturePolicyIdentifierType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "SignaturePolicyIdentifier",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ signature_production_place: Optional[SignatureProductionPlaceType] = field(
+ default=None,
+ metadata={
+ "name": "SignatureProductionPlace",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ signer_role: Optional[SignerRoleType] = field(
+ default=None,
+ metadata={
+ "name": "SignerRole",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class UnsignedSignaturePropertiesType:
+ counter_signature: Tuple[CounterSignatureType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CounterSignature",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ signature_time_stamp: Tuple[XAdESTimeStampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignatureTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ complete_certificate_refs: Tuple[CompleteCertificateRefsType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CompleteCertificateRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ complete_revocation_refs: Tuple[CompleteRevocationRefsType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CompleteRevocationRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ attribute_certificate_refs: Tuple[CompleteCertificateRefsType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttributeCertificateRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ attribute_revocation_refs: Tuple[CompleteRevocationRefsType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttributeRevocationRefs",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ sig_and_refs_time_stamp: Tuple[XAdESTimeStampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SigAndRefsTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ refs_only_time_stamp: Tuple[XAdESTimeStampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "RefsOnlyTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ certificate_values: Tuple[CertificateValuesType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "CertificateValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ revocation_values: Tuple[RevocationValuesType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "RevocationValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ attr_authorities_cert_values: Tuple[CertificateValuesType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttrAuthoritiesCertValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ attribute_revocation_values: Tuple[RevocationValuesType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "AttributeRevocationValues",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ archive_time_stamp: Tuple[XAdESTimeStampType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "ArchiveTimeStamp",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ other_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class XAdESTimeStamp(XAdESTimeStampType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class SignedDataObjectProperties(SignedDataObjectPropertiesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class SignedPropertiesType:
+ signed_signature_properties: Optional[
+ SignedSignaturePropertiesType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "SignedSignatureProperties",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ signed_data_object_properties: Optional[
+ SignedDataObjectPropertiesType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "SignedDataObjectProperties",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignedSignatureProperties(SignedSignaturePropertiesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class UnsignedPropertiesType:
+ unsigned_signature_properties: Optional[
+ UnsignedSignaturePropertiesType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "UnsignedSignatureProperties",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ unsigned_data_object_properties: Optional[
+ UnsignedDataObjectPropertiesType
+ ] = field(
+ default=None,
+ metadata={
+ "name": "UnsignedDataObjectProperties",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class UnsignedSignatureProperties(UnsignedSignaturePropertiesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class QualifyingPropertiesType:
+ signed_properties: Optional[SignedPropertiesType] = field(
+ default=None,
+ metadata={
+ "name": "SignedProperties",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ unsigned_properties: Optional[UnsignedPropertiesType] = field(
+ default=None,
+ metadata={
+ "name": "UnsignedProperties",
+ "type": "Element",
+ "namespace": "http://uri.etsi.org/01903/v1.3.2#",
+ },
+ )
+ target: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Target",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignedProperties(SignedPropertiesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class UnsignedProperties(UnsignedPropertiesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
+
+
+@dataclass(frozen=True)
+class QualifyingProperties(QualifyingPropertiesType):
+ class Meta:
+ namespace = "http://uri.etsi.org/01903/v1.3.2#"
diff --git a/pyhanko/generated/w3c/__init__.py b/pyhanko/generated/w3c/__init__.py
new file mode 100644
index 00000000..565e7e2c
--- /dev/null
+++ b/pyhanko/generated/w3c/__init__.py
@@ -0,0 +1,97 @@
+from .xmldsig_core import (
+ CanonicalizationMethod,
+ CanonicalizationMethodType,
+ DigestMethod,
+ DigestMethodType,
+ DigestValue,
+ DSAKeyValue,
+ DSAKeyValueType,
+ KeyInfo,
+ KeyInfoType,
+ KeyName,
+ KeyValue,
+ KeyValueType,
+ Manifest,
+ ManifestType,
+ MgmtData,
+ Object,
+ ObjectType,
+ PGPData,
+ PGPDataType,
+ Reference,
+ ReferenceType,
+ RetrievalMethod,
+ RetrievalMethodType,
+ RSAKeyValue,
+ RSAKeyValueType,
+ Signature,
+ SignatureMethod,
+ SignatureMethodType,
+ SignatureProperties,
+ SignaturePropertiesType,
+ SignatureProperty,
+ SignaturePropertyType,
+ SignatureType,
+ SignatureValue,
+ SignatureValueType,
+ SignedInfo,
+ SignedInfoType,
+ SPKIData,
+ SPKIDataType,
+ Transform,
+ Transforms,
+ TransformsType,
+ TransformType,
+ X509Data,
+ X509DataType,
+ X509IssuerSerialType,
+)
+
+__all__ = [
+ "CanonicalizationMethod",
+ "CanonicalizationMethodType",
+ "DSAKeyValue",
+ "DSAKeyValueType",
+ "DigestMethod",
+ "DigestMethodType",
+ "DigestValue",
+ "KeyInfo",
+ "KeyInfoType",
+ "KeyName",
+ "KeyValue",
+ "KeyValueType",
+ "Manifest",
+ "ManifestType",
+ "MgmtData",
+ "Object",
+ "ObjectType",
+ "PGPData",
+ "PGPDataType",
+ "RSAKeyValue",
+ "RSAKeyValueType",
+ "Reference",
+ "ReferenceType",
+ "RetrievalMethod",
+ "RetrievalMethodType",
+ "SPKIData",
+ "SPKIDataType",
+ "Signature",
+ "SignatureMethod",
+ "SignatureMethodType",
+ "SignatureProperties",
+ "SignaturePropertiesType",
+ "SignatureProperty",
+ "SignaturePropertyType",
+ "SignatureType",
+ "SignatureValue",
+ "SignatureValueType",
+ "SignedInfo",
+ "SignedInfoType",
+ "Transform",
+ "TransformType",
+ "Transforms",
+ "TransformsType",
+ "X509Data",
+ "X509DataType",
+ "X509IssuerSerialType",
+]
diff --git a/pyhanko/generated/w3c/xmldsig_core.py b/pyhanko/generated/w3c/xmldsig_core.py
new file mode 100644
index 00000000..d401aa81
--- /dev/null
+++ b/pyhanko/generated/w3c/xmldsig_core.py
@@ -0,0 +1,864 @@
+from dataclasses import dataclass, field
+from typing import Optional, Tuple
+
+__NAMESPACE__ = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class CanonicalizationMethodType:
+ algorithm: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Algorithm",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DSAKeyValueType:
+ p: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "P",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "format": "base64",
+ },
+ )
+ q: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "Q",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "format": "base64",
+ },
+ )
+ g: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "G",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "format": "base64",
+ },
+ )
+ y: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "Y",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+ j: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "J",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "format": "base64",
+ },
+ )
+ seed: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "Seed",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "format": "base64",
+ },
+ )
+ pgen_counter: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "PgenCounter",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "format": "base64",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DigestMethodType:
+ algorithm: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Algorithm",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class DigestValue:
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+ value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "required": True,
+ "format": "base64",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class KeyName:
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class MgmtData:
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+ value: str = field(
+ default="",
+ metadata={
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ObjectType:
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+ mime_type: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "MimeType",
+ "type": "Attribute",
+ },
+ )
+ encoding: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Encoding",
+ "type": "Attribute",
+ },
+ )
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class PGPDataType:
+ pgpkey_id: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "PGPKeyID",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+ pgpkey_packet: Tuple[bytes, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "PGPKeyPacket",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "max_occurs": 2,
+ "format": "base64",
+ },
+ )
+ other_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class RSAKeyValueType:
+ modulus: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "Modulus",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+ exponent: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "Exponent",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SPKIDataType:
+ spkisexp: Tuple[bytes, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SPKISexp",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "min_occurs": 1,
+ "sequence": 1,
+ "format": "base64",
+ },
+ )
+ other_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ "sequence": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureMethodType:
+ algorithm: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Algorithm",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ "choices": (
+ {
+ "name": "HMACOutputLength",
+ "type": int,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ ),
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignaturePropertyType:
+ target: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Target",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignatureValueType:
+ value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "required": True,
+ "format": "base64",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TransformType:
+ algorithm: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Algorithm",
+ "type": "Attribute",
+ "required": True,
+ },
+ )
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ "choices": (
+ {
+ "name": "XPath",
+ "type": str,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ ),
+ },
+ )
+
+
+@dataclass(frozen=True)
+class X509IssuerSerialType:
+ x509_issuer_name: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "X509IssuerName",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ x509_serial_number: Optional[int] = field(
+ default=None,
+ metadata={
+ "name": "X509SerialNumber",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class CanonicalizationMethod(CanonicalizationMethodType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class DSAKeyValue(DSAKeyValueType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class DigestMethod(DigestMethodType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class Object(ObjectType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class PGPData(PGPDataType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class RSAKeyValue(RSAKeyValueType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class SPKIData(SPKIDataType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class SignatureMethod(SignatureMethodType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class SignatureProperty(SignaturePropertyType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class SignatureValue(SignatureValueType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class Transform(TransformType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class X509DataType:
+ x509_issuer_serial: Tuple[X509IssuerSerialType, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "X509IssuerSerial",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "sequence": 1,
+ },
+ )
+ x509_ski: Tuple[bytes, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "X509SKI",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "sequence": 1,
+ "format": "base64",
+ },
+ )
+ x509_subject_name: Tuple[str, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "X509SubjectName",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "sequence": 1,
+ },
+ )
+ x509_certificate: Tuple[bytes, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "X509Certificate",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "sequence": 1,
+ "format": "base64",
+ },
+ )
+ x509_crl: Tuple[bytes, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "X509CRL",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "sequence": 1,
+ "format": "base64",
+ },
+ )
+ other_element: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##other",
+ "sequence": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class KeyValueType:
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ "choices": (
+ {
+ "name": "DSAKeyValue",
+ "type": DSAKeyValue,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ {
+ "name": "RSAKeyValue",
+ "type": RSAKeyValue,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ ),
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignaturePropertiesType:
+ signature_property: Tuple[SignatureProperty, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "SignatureProperty",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "min_occurs": 1,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class TransformsType:
+ transform: Tuple[Transform, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Transform",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "min_occurs": 1,
+ },
+ )
+
+
+@dataclass(frozen=True)
+class X509Data(X509DataType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class KeyValue(KeyValueType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class SignatureProperties(SignaturePropertiesType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class Transforms(TransformsType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class ReferenceType:
+ transforms: Optional[Transforms] = field(
+ default=None,
+ metadata={
+ "name": "Transforms",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ digest_method: Optional[DigestMethod] = field(
+ default=None,
+ metadata={
+ "name": "DigestMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ digest_value: Optional[bytes] = field(
+ default=None,
+ metadata={
+ "name": "DigestValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ "format": "base64",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Attribute",
+ },
+ )
+ type_value: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Type",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class RetrievalMethodType:
+ transforms: Optional[Transforms] = field(
+ default=None,
+ metadata={
+ "name": "Transforms",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ uri: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "URI",
+ "type": "Attribute",
+ },
+ )
+ type_value: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Type",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class Reference(ReferenceType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class RetrievalMethod(RetrievalMethodType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class KeyInfoType:
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+ content: Tuple[object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "type": "Wildcard",
+ "namespace": "##any",
+ "mixed": True,
+ "choices": (
+ {
+ "name": "KeyName",
+ "type": str,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ {
+ "name": "KeyValue",
+ "type": KeyValue,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ {
+ "name": "RetrievalMethod",
+ "type": RetrievalMethod,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ {
+ "name": "X509Data",
+ "type": X509Data,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ {
+ "name": "PGPData",
+ "type": PGPData,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ {
+ "name": "SPKIData",
+ "type": SPKIData,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ {
+ "name": "MgmtData",
+ "type": str,
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ ),
+ },
+ )
+
+
+@dataclass(frozen=True)
+class ManifestType:
+ reference: Tuple[Reference, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Reference",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "min_occurs": 1,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class SignedInfoType:
+ canonicalization_method: Optional[CanonicalizationMethod] = field(
+ default=None,
+ metadata={
+ "name": "CanonicalizationMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ signature_method: Optional[SignatureMethod] = field(
+ default=None,
+ metadata={
+ "name": "SignatureMethod",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ reference: Tuple[Reference, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Reference",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "min_occurs": 1,
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class KeyInfo(KeyInfoType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class Manifest(ManifestType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class SignedInfo(SignedInfoType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
+
+
+@dataclass(frozen=True)
+class SignatureType:
+ signed_info: Optional[SignedInfo] = field(
+ default=None,
+ metadata={
+ "name": "SignedInfo",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ signature_value: Optional[SignatureValue] = field(
+ default=None,
+ metadata={
+ "name": "SignatureValue",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ "required": True,
+ },
+ )
+ key_info: Optional[KeyInfo] = field(
+ default=None,
+ metadata={
+ "name": "KeyInfo",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ object_value: Tuple[Object, ...] = field(
+ default_factory=tuple,
+ metadata={
+ "name": "Object",
+ "type": "Element",
+ "namespace": "http://www.w3.org/2000/09/xmldsig#",
+ },
+ )
+ id: Optional[str] = field(
+ default=None,
+ metadata={
+ "name": "Id",
+ "type": "Attribute",
+ },
+ )
+
+
+@dataclass(frozen=True)
+class Signature(SignatureType):
+ class Meta:
+ namespace = "http://www.w3.org/2000/09/xmldsig#"
diff --git a/pyhanko/generated/xml.py b/pyhanko/generated/xml.py
new file mode 100644
index 00000000..e8dde4e3
--- /dev/null
+++ b/pyhanko/generated/xml.py
@@ -0,0 +1,7 @@
+from enum import Enum
+
+__NAMESPACE__ = "http://www.w3.org/XML/1998/namespace"
+
+
+class Langvalue(Enum):
+ VALUE = ""
diff --git a/pyproject.toml b/pyproject.toml
index cf49894b..d1483248 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -74,6 +74,7 @@ image-support = [
]
pkcs11 = ["python-pkcs11~=0.7.0"]
async-http = ["aiohttp~=3.8.0"]
+etsi = ["xsdata~=23.8"]
testing-basic = [
"pytest>=6.1.1",
"requests-mock>=1.8.0",
@@ -96,7 +97,7 @@ live-test = [
"pytest-cov>=4.0,<4.2",
]
mypy = [
- "pyHanko[pkcs11,xmp,opentype,image-support,async-http,extra-pubkey-algs]",
+ "pyHanko[pkcs11,xmp,opentype,image-support,async-http,extra-pubkey-algs,etsi]",
"types-requests",
"types-python-dateutil",
"types-PyYAML",