From fbb74507059e6f5080c16ee6e57cad7f82897937 Mon Sep 17 00:00:00 2001 From: Tim van Dijen Date: Tue, 24 Dec 2024 13:59:19 +0100 Subject: [PATCH] Implement DOM schema validation --- composer.json | 4 ++-- src/XML/alg/AbstractAlgElement.php | 3 +++ src/XML/alg/DigestMethod.php | 5 ++++- src/XML/alg/SigningMethod.php | 5 ++++- src/XML/ecp/AbstractEcpElement.php | 3 +++ src/XML/ecp/RelayState.php | 5 ++++- src/XML/ecp/Request.php | 6 +++++- src/XML/ecp/RequestAuthenticated.php | 6 +++++- src/XML/ecp/Response.php | 6 +++++- src/XML/ecp/SubjectConfirmation.php | 6 +++++- src/XML/element.registry.php | 6 ------ src/XML/emd/AbstractEmdElement.php | 3 +++ src/XML/emd/RepublishRequest.php | 8 +++++++- src/XML/idpdisc/DiscoveryResponse.php | 8 +++++++- src/XML/init/RequestInitiator.php | 8 +++++++- src/XML/md/AbstractMdElement.php | 3 +++ src/XML/md/AbstractRoleDescriptor.php | 7 ++++++- src/XML/md/AdditionalMetadataLocation.php | 5 ++++- src/XML/md/AffiliateMember.php | 5 ++++- src/XML/md/AffiliationDescriptor.php | 5 ++++- src/XML/md/ArtifactResolutionService.php | 6 +++++- src/XML/md/AssertionConsumerService.php | 6 +++++- src/XML/md/AttributeAuthorityDescriptor.php | 7 ++++++- src/XML/md/AttributeConsumingService.php | 5 ++++- src/XML/md/AttributeProfile.php | 5 ++++- src/XML/md/AttributeService.php | 6 +++++- src/XML/md/AuthnAuthorityDescriptor.php | 6 +++++- src/XML/md/Company.php | 5 ++++- src/XML/md/ContactPerson.php | 7 ++++++- src/XML/md/EmailAddress.php | 7 ++++++- src/XML/md/EncryptionMethod.php | 14 ++++++++++---- src/XML/md/EntitiesDescriptor.php | 6 +++++- src/XML/md/EntityDescriptor.php | 5 ++++- src/XML/md/Extensions.php | 6 ++++-- src/XML/md/GivenName.php | 5 ++++- src/XML/md/IDPSSODescriptor.php | 6 +++++- src/XML/md/KeyDescriptor.php | 6 +++++- src/XML/md/NameIDFormat.php | 5 ++++- src/XML/md/NameIDMappingService.php | 6 +++++- src/XML/md/Organization.php | 7 ++++++- src/XML/md/OrganizationDisplayName.php | 6 +++++- src/XML/md/OrganizationName.php | 6 +++++- src/XML/md/OrganizationURL.php | 6 +++++- src/XML/md/PDPDescriptor.php | 6 +++++- src/XML/md/RequestedAttribute.php | 8 +++++--- src/XML/md/SPSSODescriptor.php | 6 +++++- src/XML/md/ServiceDescription.php | 6 +++++- src/XML/md/ServiceName.php | 6 +++++- src/XML/md/SingleSignOnService.php | 6 +++++- src/XML/md/SurName.php | 5 ++++- src/XML/md/TelephoneNumber.php | 7 ++++++- src/XML/mdattr/AbstractMdattrElement.php | 3 +++ src/XML/mdattr/EntityAttributes.php | 6 +++++- src/XML/mdrpi/AbstractMdrpiElement.php | 3 +++ src/XML/mdrpi/Publication.php | 8 +++++++- src/XML/mdrpi/PublicationInfo.php | 8 +++++++- src/XML/mdrpi/PublicationPath.php | 8 +++++++- src/XML/mdrpi/RegistrationInfo.php | 8 +++++++- src/XML/mdui/AbstractMduiElement.php | 3 +++ src/XML/mdui/DiscoHints.php | 7 ++++++- src/XML/mdui/DomainHint.php | 5 ++++- src/XML/mdui/GeolocationHint.php | 5 ++++- src/XML/mdui/IPHint.php | 5 ++++- src/XML/mdui/Keywords.php | 8 +++++++- src/XML/mdui/Logo.php | 7 ++++++- src/XML/mdui/UIInfo.php | 7 ++++++- src/XML/saml/AbstractBaseID.php | 6 +++++- src/XML/saml/AbstractCondition.php | 7 ++++++- src/XML/saml/AbstractStatement.php | 7 ++++++- src/XML/saml/Advice.php | 5 ++++- src/XML/saml/Assertion.php | 4 ++++ src/XML/saml/AssertionIDRef.php | 5 ++++- src/XML/saml/AssertionURIRef.php | 5 ++++- src/XML/saml/Attribute.php | 7 ++++++- src/XML/saml/AttributeStatement.php | 6 +++++- src/XML/saml/AttributeValue.php | 8 ++++++-- src/XML/saml/Audience.php | 5 ++++- src/XML/saml/AudienceRestriction.php | 6 +++++- src/XML/saml/AuthenticatingAuthority.php | 5 ++++- src/XML/saml/AuthnContext.php | 6 +++++- src/XML/saml/AuthnContextClassRef.php | 5 ++++- src/XML/saml/AuthnContextDecl.php | 5 ++++- src/XML/saml/AuthnContextDeclRef.php | 5 ++++- src/XML/saml/AuthnStatement.php | 6 +++++- src/XML/saml/AuthzDecisionStatement.php | 6 +++++- src/XML/saml/Conditions.php | 6 +++++- src/XML/saml/EncryptedAssertion.php | 7 ++++++- src/XML/saml/EncryptedAttribute.php | 8 ++++++-- src/XML/saml/EncryptedID.php | 9 +++++++-- src/XML/saml/Evidence.php | 6 +++++- src/XML/saml/Issuer.php | 6 +++++- src/XML/saml/NameID.php | 7 ++++++- src/XML/saml/OneTimeUse.php | 6 +++++- src/XML/saml/ProxyRestriction.php | 6 +++++- src/XML/saml/Subject.php | 5 ++++- src/XML/saml/SubjectConfirmation.php | 6 ++++-- src/XML/saml/SubjectConfirmationData.php | 5 ++++- src/XML/saml/SubjectLocality.php | 6 +++++- src/XML/samlp/Artifact.php | 5 ++++- src/XML/samlp/ArtifactResolve.php | 6 +++++- src/XML/samlp/ArtifactResponse.php | 6 +++++- src/XML/samlp/AssertionIDRequest.php | 6 +++++- src/XML/samlp/AttributeQuery.php | 6 +++++- src/XML/samlp/AuthnQuery.php | 6 +++++- src/XML/samlp/AuthnRequest.php | 6 +++++- src/XML/samlp/AuthzDecisionQuery.php | 6 +++++- src/XML/samlp/Extensions.php | 5 ++++- src/XML/samlp/GetComplete.php | 5 ++++- src/XML/samlp/IDPEntry.php | 6 +++++- src/XML/samlp/IDPList.php | 6 +++++- src/XML/samlp/LogoutRequest.php | 6 ++++-- src/XML/samlp/LogoutResponse.php | 6 +++++- src/XML/samlp/NameIDPolicy.php | 8 +++++++- src/XML/samlp/RequestedAuthnContext.php | 6 +++++- src/XML/samlp/RequesterID.php | 5 ++++- src/XML/samlp/Response.php | 6 +++++- src/XML/samlp/Scoping.php | 6 +++++- src/XML/samlp/SessionIndex.php | 5 ++++- src/XML/samlp/Status.php | 6 +++++- src/XML/samlp/StatusCode.php | 6 +++++- src/XML/samlp/StatusDetail.php | 5 ++++- src/XML/samlp/StatusMessage.php | 5 ++++- src/XML/shibmd/AbstractShibmdElement.php | 3 +++ src/XML/shibmd/KeyAuthority.php | 5 ++++- src/XML/shibmd/Scope.php | 5 ++++- tests/SAML2/XML/alg/DigestMethodTest.php | 3 --- tests/SAML2/XML/alg/SigningMethodTest.php | 3 --- tests/SAML2/XML/ecp/RelayStateTest.php | 2 -- tests/SAML2/XML/ecp/RequestAuthenticatedTest.php | 2 -- tests/SAML2/XML/ecp/RequestTest.php | 2 -- tests/SAML2/XML/ecp/ResponseTest.php | 2 -- tests/SAML2/XML/ecp/SubjectConfirmationTest.php | 2 -- tests/SAML2/XML/emd/RepublishRequestTest.php | 2 -- tests/SAML2/XML/idpdisc/DiscoveryResponseTest.php | 2 -- tests/SAML2/XML/init/RequestInitiatorTest.php | 2 -- .../XML/md/AdditionalMetadataLocationTest.php | 2 -- tests/SAML2/XML/md/AffiliateMemberTest.php | 2 -- tests/SAML2/XML/md/AffiliationDescriptorTest.php | 2 -- .../SAML2/XML/md/ArtifactResolutionServiceTest.php | 2 -- .../SAML2/XML/md/AssertionConsumerServiceTest.php | 2 -- .../XML/md/AttributeAuthorityDescriptorTest.php | 2 -- .../SAML2/XML/md/AttributeConsumingServiceTest.php | 2 -- tests/SAML2/XML/md/AttributeProfileTest.php | 2 -- .../SAML2/XML/md/AuthnAuthorityDescriptorTest.php | 2 -- tests/SAML2/XML/md/CompanyTest.php | 2 -- tests/SAML2/XML/md/ContactPersonTest.php | 2 -- tests/SAML2/XML/md/EmailAddressTest.php | 2 -- tests/SAML2/XML/md/EndpointTypeTest.php | 2 -- tests/SAML2/XML/md/EntitiesDescriptorTest.php | 2 -- tests/SAML2/XML/md/EntityDescriptorTest.php | 2 -- tests/SAML2/XML/md/ExtensionsTest.php | 2 -- tests/SAML2/XML/md/GivenNameTest.php | 2 -- tests/SAML2/XML/md/IDPSSODescriptorTest.php | 2 -- tests/SAML2/XML/md/KeyDescriptorTest.php | 2 -- tests/SAML2/XML/md/NameIDFormatTest.php | 2 -- tests/SAML2/XML/md/NameIDMappingServiceTest.php | 2 -- tests/SAML2/XML/md/OrganizationDisplayNameTest.php | 2 -- tests/SAML2/XML/md/OrganizationNameTest.php | 2 -- tests/SAML2/XML/md/OrganizationTest.php | 2 -- tests/SAML2/XML/md/OrganizationURLTest.php | 2 -- tests/SAML2/XML/md/PDPDescriptorTest.php | 2 -- tests/SAML2/XML/md/RequestedAttributeTest.php | 2 -- tests/SAML2/XML/md/SPSSODescriptorTest.php | 2 -- tests/SAML2/XML/md/ServiceDescriptionTest.php | 2 -- tests/SAML2/XML/md/ServiceNameTest.php | 2 -- tests/SAML2/XML/md/SingleSignOnServiceTest.php | 2 -- tests/SAML2/XML/md/SurNameTest.php | 2 -- tests/SAML2/XML/md/TelephoneNumberTest.php | 2 -- tests/SAML2/XML/mdattr/EntityAttributesTest.php | 2 -- tests/SAML2/XML/mdrpi/PublicationInfoTest.php | 2 -- tests/SAML2/XML/mdrpi/PublicationPathTest.php | 2 -- tests/SAML2/XML/mdrpi/PublicationTest.php | 2 -- tests/SAML2/XML/mdrpi/RegistrationInfoTest.php | 2 -- tests/SAML2/XML/mdrpi/RegistrationPolicyTest.php | 4 ---- tests/SAML2/XML/mdrpi/UsagePolicyTest.php | 4 ---- tests/SAML2/XML/mdui/DescriptionTest.php | 4 ---- tests/SAML2/XML/mdui/DiscoHintsTest.php | 2 -- tests/SAML2/XML/mdui/DisplayNameTest.php | 4 ---- tests/SAML2/XML/mdui/DomainHintTest.php | 2 -- tests/SAML2/XML/mdui/GeolocationHintTest.php | 2 -- tests/SAML2/XML/mdui/IPHintTest.php | 2 -- tests/SAML2/XML/mdui/InformationURLTest.php | 4 ---- tests/SAML2/XML/mdui/KeywordsTest.php | 2 -- tests/SAML2/XML/mdui/LogoTest.php | 2 -- tests/SAML2/XML/mdui/PrivacyStatementURLTest.php | 4 ---- tests/SAML2/XML/mdui/UIInfoTest.php | 2 -- tests/SAML2/XML/saml/ConditionTest.php | 2 +- tests/SAML2/XML/saml/StatementTest.php | 2 +- tests/SAML2/XML/shibmd/KeyAuthorityTest.php | 2 -- tests/SAML2/XML/shibmd/ScopeTest.php | 2 -- 190 files changed, 605 insertions(+), 275 deletions(-) diff --git a/composer.json b/composer.json index f4017bf25..908fc9016 100644 --- a/composer.json +++ b/composer.json @@ -32,9 +32,9 @@ "psr/http-message": "^2.0", "psr/log": "^2.0 || ^3.0", "simplesamlphp/assert": "~1.6.0", - "simplesamlphp/xml-common": "~1.22.0", + "simplesamlphp/xml-common": "~1.23.0", "simplesamlphp/xml-security": "~1.12.0", - "simplesamlphp/xml-soap": "~1.5.6" + "simplesamlphp/xml-soap": "~1.6.0" }, "require-dev": { "ext-intl": "*", diff --git a/src/XML/alg/AbstractAlgElement.php b/src/XML/alg/AbstractAlgElement.php index 266946b37..207812c0d 100644 --- a/src/XML/alg/AbstractAlgElement.php +++ b/src/XML/alg/AbstractAlgElement.php @@ -19,4 +19,7 @@ abstract class AbstractAlgElement extends AbstractElement /** @var string */ public const NS_PREFIX = 'alg'; + + /** @var string */ + public const SCHEMA = 'resources/schemas/sstc-saml-metadata-algsupport-v1.0.xsd'; } diff --git a/src/XML/alg/DigestMethod.php b/src/XML/alg/DigestMethod.php index f6d62ca75..6be719759 100644 --- a/src/XML/alg/DigestMethod.php +++ b/src/XML/alg/DigestMethod.php @@ -9,6 +9,8 @@ use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; /** @@ -17,9 +19,10 @@ * @link http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-algsupport.pdf * @package simplesamlphp/saml2 */ -final class DigestMethod extends AbstractAlgElement +final class DigestMethod extends AbstractAlgElement implements SchemaValidatableElementInterface { use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:any element */ public const XS_ANY_ELT_NAMESPACE = NS::ANY; diff --git a/src/XML/alg/SigningMethod.php b/src/XML/alg/SigningMethod.php index 3aa270ef0..443bcd4ce 100644 --- a/src/XML/alg/SigningMethod.php +++ b/src/XML/alg/SigningMethod.php @@ -9,6 +9,8 @@ use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; use function strval; @@ -19,9 +21,10 @@ * @link http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-algsupport.pdf * @package simplesamlphp/saml2 */ -final class SigningMethod extends AbstractAlgElement +final class SigningMethod extends AbstractAlgElement implements SchemaValidatableElementInterface { use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:any element */ public const XS_ANY_ELT_NAMESPACE = NS::ANY; diff --git a/src/XML/ecp/AbstractEcpElement.php b/src/XML/ecp/AbstractEcpElement.php index 1e38221b7..e6c31f0ed 100644 --- a/src/XML/ecp/AbstractEcpElement.php +++ b/src/XML/ecp/AbstractEcpElement.php @@ -21,4 +21,7 @@ abstract class AbstractEcpElement extends AbstractElement /** @var string */ public const NS_PREFIX = 'ecp'; + + /** @var string */ + public const SCHEMA = 'resources/schemas/saml-schema-ecp-2.0.xsd'; } diff --git a/src/XML/ecp/RelayState.php b/src/XML/ecp/RelayState.php index 141a1c4b6..4ef1f8658 100644 --- a/src/XML/ecp/RelayState.php +++ b/src/XML/ecp/RelayState.php @@ -10,6 +10,8 @@ use SimpleSAML\SOAP\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingAttributeException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -17,8 +19,9 @@ * * @package simplesamlphp/saml2 */ -final class RelayState extends AbstractEcpElement +final class RelayState extends AbstractEcpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; /** diff --git a/src/XML/ecp/Request.php b/src/XML/ecp/Request.php index a37b8abfb..8e9d17f3b 100644 --- a/src/XML/ecp/Request.php +++ b/src/XML/ecp/Request.php @@ -13,6 +13,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingAttributeException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function intval; use function strval; @@ -22,8 +24,10 @@ * * @package simplesamlphp/saml2 */ -final class Request extends AbstractEcpElement +final class Request extends AbstractEcpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create a ECP Request element. * diff --git a/src/XML/ecp/RequestAuthenticated.php b/src/XML/ecp/RequestAuthenticated.php index 60b1d155b..c4dbaf66b 100644 --- a/src/XML/ecp/RequestAuthenticated.php +++ b/src/XML/ecp/RequestAuthenticated.php @@ -10,6 +10,8 @@ use SimpleSAML\SOAP\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingAttributeException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function boolval; use function strval; @@ -19,8 +21,10 @@ * * @package simplesamlphp/saml2 */ -final class RequestAuthenticated extends AbstractEcpElement +final class RequestAuthenticated extends AbstractEcpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create a ECP RequestAuthenticated element. * diff --git a/src/XML/ecp/Response.php b/src/XML/ecp/Response.php index 782c29e20..4b1608e1e 100644 --- a/src/XML/ecp/Response.php +++ b/src/XML/ecp/Response.php @@ -11,14 +11,18 @@ use SimpleSAML\SOAP\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingAttributeException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing the ECP Response element. * * @package simplesamlphp/saml2 */ -final class Response extends AbstractEcpElement +final class Response extends AbstractEcpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create a ECP Response element. * diff --git a/src/XML/ecp/SubjectConfirmation.php b/src/XML/ecp/SubjectConfirmation.php index b8578d843..052c0c61f 100644 --- a/src/XML/ecp/SubjectConfirmation.php +++ b/src/XML/ecp/SubjectConfirmation.php @@ -13,14 +13,18 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingAttributeException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing the ECP SubjectConfirmation element. * * @package simplesamlphp/saml2 */ -final class SubjectConfirmation extends AbstractEcpElement +final class SubjectConfirmation extends AbstractEcpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create a ECP SubjectConfirmation element. * diff --git a/src/XML/element.registry.php b/src/XML/element.registry.php index 04b8d47de..5f6d3bab7 100644 --- a/src/XML/element.registry.php +++ b/src/XML/element.registry.php @@ -67,20 +67,14 @@ 'PublicationInfo' => '\SimpleSAML\SAML2\XML\mdrpi\PublicationInfo', 'PublicationPath' => '\SimpleSAML\SAML2\XML\mdrpi\PublicationPath', 'RegistrationInfo' => '\SimpleSAML\SAML2\XML\mdrpi\RegistrationInfo', - 'RegistrationPolicy' => '\SimpleSAML\SAML2\XML\mdrpi\RegistrationPolicy', - 'UsagePolicy' => '\SimpleSAML\SAML2\XML\mdrpi\UsagePolicy', ], 'urn:oasis:names:tc:SAML:metadata:ui' => [ - 'Description' => '\SimpleSAML\SAML2\XML\mdui\Description', 'DiscoHints' => '\SimpleSAML\SAML2\XML\mdui\DiscoHints', - 'DisplayName' => '\SimpleSAML\SAML2\XML\mdui\DisplayName', 'DomainHint' => '\SimpleSAML\SAML2\XML\mdui\DomainHint', 'GeolocationHint' => '\SimpleSAML\SAML2\XML\mdui\GeolocationHint', - 'InformationURL' => '\SimpleSAML\SAML2\XML\mdui\InformationURL', 'IPHint' => '\SimpleSAML\SAML2\XML\mdui\IPHint', 'Keywords' => '\SimpleSAML\SAML2\XML\mdui\Keywords', 'Logo' => '\SimpleSAML\SAML2\XML\mdui\Logo', - 'PrivacyStatementURL' => '\SimpleSAML\SAML2\XML\mdui\PrivacyStatementURL', 'UIInfo' => '\SimpleSAML\SAML2\XML\mdui\UIInfo', ], 'urn:oasis:names:tc:SAML:metadata:attribute' => [ diff --git a/src/XML/emd/AbstractEmdElement.php b/src/XML/emd/AbstractEmdElement.php index 634342513..068b77a9e 100644 --- a/src/XML/emd/AbstractEmdElement.php +++ b/src/XML/emd/AbstractEmdElement.php @@ -19,4 +19,7 @@ abstract class AbstractEmdElement extends AbstractElement /** @var string */ public const NS_PREFIX = 'emd'; + + /** @var string */ + public const SCHEMA = 'resources/schemas/eduidmd.xsd'; } diff --git a/src/XML/emd/RepublishRequest.php b/src/XML/emd/RepublishRequest.php index 379b781b5..aa1e4df2a 100644 --- a/src/XML/emd/RepublishRequest.php +++ b/src/XML/emd/RepublishRequest.php @@ -10,6 +10,8 @@ use SimpleSAML\XML\ArrayizableElementInterface; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_pop; @@ -18,8 +20,12 @@ * * @package simplesamlphp/saml2 */ -final class RepublishRequest extends AbstractEmdElement implements ArrayizableElementInterface +final class RepublishRequest extends AbstractEmdElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * @param \SimpleSAML\SAML2\XML\emd\RepublishTarget $republishTarget */ diff --git a/src/XML/idpdisc/DiscoveryResponse.php b/src/XML/idpdisc/DiscoveryResponse.php index 3e424a651..299487c2c 100644 --- a/src/XML/idpdisc/DiscoveryResponse.php +++ b/src/XML/idpdisc/DiscoveryResponse.php @@ -8,6 +8,8 @@ use SimpleSAML\SAML2\Constants as C; use SimpleSAML\SAML2\Exception\ProtocolViolationException; use SimpleSAML\SAML2\XML\md\AbstractIndexedEndpointType; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Abstract class to be implemented by all the classes in this namespace @@ -16,14 +18,18 @@ * * @see http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-idp-discovery.html */ -final class DiscoveryResponse extends AbstractIndexedEndpointType +final class DiscoveryResponse extends AbstractIndexedEndpointType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** @var string */ public const NS = C::NS_IDPDISC; /** @var string */ public const NS_PREFIX = 'idpdisc'; + /** @var string */ + public const SCHEMA = 'resources/schemas/sstc-saml-idp-discovery.xsd'; /** * DiscoveryResponse constructor. diff --git a/src/XML/init/RequestInitiator.php b/src/XML/init/RequestInitiator.php index ae4a28c4f..8e930d0e9 100644 --- a/src/XML/init/RequestInitiator.php +++ b/src/XML/init/RequestInitiator.php @@ -9,6 +9,8 @@ use SimpleSAML\SAML2\Exception\ProtocolViolationException; use SimpleSAML\SAML2\XML\md\AbstractEndpointType; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class for handling the init:RequestInitiator element. @@ -17,14 +19,18 @@ * * @package simplesamlphp/saml2 */ -final class RequestInitiator extends AbstractEndpointType +final class RequestInitiator extends AbstractEndpointType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** @var string */ public const NS = 'urn:oasis:names:tc:SAML:profiles:SSO:request-init'; /** @var string */ public const NS_PREFIX = 'init'; + /** @var string */ + public const SCHEMA = 'resources/schemas/sstc-request-initiation.xsd'; /** * EndpointType constructor. diff --git a/src/XML/md/AbstractMdElement.php b/src/XML/md/AbstractMdElement.php index 9e25593ee..34b973326 100644 --- a/src/XML/md/AbstractMdElement.php +++ b/src/XML/md/AbstractMdElement.php @@ -19,4 +19,7 @@ abstract class AbstractMdElement extends AbstractElement /** @var string */ public const NS_PREFIX = 'md'; + + /** @var string */ + public const SCHEMA = 'resources/schemas/saml-schema-metadata-2.0.xsd'; } diff --git a/src/XML/md/AbstractRoleDescriptor.php b/src/XML/md/AbstractRoleDescriptor.php index 5214e6af5..9fc9d21c0 100644 --- a/src/XML/md/AbstractRoleDescriptor.php +++ b/src/XML/md/AbstractRoleDescriptor.php @@ -17,6 +17,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_pop; use function count; @@ -27,9 +29,12 @@ * * @package simplesamlphp/saml2 */ -abstract class AbstractRoleDescriptor extends AbstractRoleDescriptorType implements ExtensionPointInterface +abstract class AbstractRoleDescriptor extends AbstractRoleDescriptorType implements + ExtensionPointInterface, + SchemaValidatableElementInterface { use ExtensionPointTrait; + use SchemaValidatableElementTrait; /** @var string */ public const LOCALNAME = 'RoleDescriptor'; diff --git a/src/XML/md/AdditionalMetadataLocation.php b/src/XML/md/AdditionalMetadataLocation.php index af36afabd..bc52ea67b 100644 --- a/src/XML/md/AdditionalMetadataLocation.php +++ b/src/XML/md/AdditionalMetadataLocation.php @@ -9,6 +9,8 @@ use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; use function trim; @@ -18,8 +20,9 @@ * * @package simplesamlphp/saml2 */ -final class AdditionalMetadataLocation extends AbstractMdElement +final class AdditionalMetadataLocation extends AbstractMdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/md/AffiliateMember.php b/src/XML/md/AffiliateMember.php index d58d4a032..0b99a6424 100644 --- a/src/XML/md/AffiliateMember.php +++ b/src/XML/md/AffiliateMember.php @@ -5,6 +5,8 @@ namespace SimpleSAML\SAML2\XML\md; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -12,8 +14,9 @@ * * @package simplesamlphp/saml2 */ -final class AffiliateMember extends AbstractMdElement +final class AffiliateMember extends AbstractMdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/md/AffiliationDescriptor.php b/src/XML/md/AffiliationDescriptor.php index 4d0e4286c..66ea21796 100644 --- a/src/XML/md/AffiliationDescriptor.php +++ b/src/XML/md/AffiliationDescriptor.php @@ -12,6 +12,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; use SimpleSAML\XML\ExtendableAttributesTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; use SimpleSAML\XMLSecurity\XML\ds\Signature; @@ -20,9 +22,10 @@ * * @package simplesamlphp/saml2 */ -final class AffiliationDescriptor extends AbstractMetadataDocument +final class AffiliationDescriptor extends AbstractMetadataDocument implements SchemaValidatableElementInterface { use ExtendableAttributesTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:anyAttribute element */ public const XS_ANY_ATTR_NAMESPACE = NS::OTHER; diff --git a/src/XML/md/ArtifactResolutionService.php b/src/XML/md/ArtifactResolutionService.php index 75d72dbb5..8af0579ae 100644 --- a/src/XML/md/ArtifactResolutionService.php +++ b/src/XML/md/ArtifactResolutionService.php @@ -5,14 +5,18 @@ namespace SimpleSAML\SAML2\XML\md; use SimpleSAML\Assert\Assert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * A class implementing the md:ArtifactResolutionService element. * * @package simplesamlphp/saml2 */ -final class ArtifactResolutionService extends AbstractIndexedEndpointType +final class ArtifactResolutionService extends AbstractIndexedEndpointType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * ArtifactResolutionService constructor. * diff --git a/src/XML/md/AssertionConsumerService.php b/src/XML/md/AssertionConsumerService.php index c9994d984..b234a0b3a 100644 --- a/src/XML/md/AssertionConsumerService.php +++ b/src/XML/md/AssertionConsumerService.php @@ -4,11 +4,15 @@ namespace SimpleSAML\SAML2\XML\md; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; + /** * Class implementing the md:AssertionConsumerService element. * * @package simplesamlphp/saml2 */ -final class AssertionConsumerService extends AbstractIndexedEndpointType +final class AssertionConsumerService extends AbstractIndexedEndpointType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; } diff --git a/src/XML/md/AttributeAuthorityDescriptor.php b/src/XML/md/AttributeAuthorityDescriptor.php index 6c6ad89ea..21cb2fa0e 100644 --- a/src/XML/md/AttributeAuthorityDescriptor.php +++ b/src/XML/md/AttributeAuthorityDescriptor.php @@ -13,6 +13,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function preg_split; @@ -22,8 +24,11 @@ * * @package simplesamlphp/saml2 */ -final class AttributeAuthorityDescriptor extends AbstractRoleDescriptorType +final class AttributeAuthorityDescriptor extends AbstractRoleDescriptorType implements + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * AttributeAuthorityDescriptor constructor. * diff --git a/src/XML/md/AttributeConsumingService.php b/src/XML/md/AttributeConsumingService.php index a722f759a..0c8f8712a 100644 --- a/src/XML/md/AttributeConsumingService.php +++ b/src/XML/md/AttributeConsumingService.php @@ -9,6 +9,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function strval; @@ -17,9 +19,10 @@ * * @package simplesamlphp/saml2 */ -final class AttributeConsumingService extends AbstractMdElement +final class AttributeConsumingService extends AbstractMdElement implements SchemaValidatableElementInterface { use IndexedElementTrait; + use SchemaValidatableElementTrait; /** * AttributeConsumingService constructor. diff --git a/src/XML/md/AttributeProfile.php b/src/XML/md/AttributeProfile.php index 3e3f410bf..fa02662ee 100644 --- a/src/XML/md/AttributeProfile.php +++ b/src/XML/md/AttributeProfile.php @@ -8,6 +8,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -15,8 +17,9 @@ * * @package simplesamlphp/saml2 */ -final class AttributeProfile extends AbstractMdElement +final class AttributeProfile extends AbstractMdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/md/AttributeService.php b/src/XML/md/AttributeService.php index 179a7e0aa..c0626f728 100644 --- a/src/XML/md/AttributeService.php +++ b/src/XML/md/AttributeService.php @@ -4,11 +4,15 @@ namespace SimpleSAML\SAML2\XML\md; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; + /** * AttributeService elements of type EndpointType * * @package simplesamlphp/saml2 */ -final class AttributeService extends AbstractEndpointType +final class AttributeService extends AbstractEndpointType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; } diff --git a/src/XML/md/AuthnAuthorityDescriptor.php b/src/XML/md/AuthnAuthorityDescriptor.php index 8f7ee3513..d9f420a3d 100644 --- a/src/XML/md/AuthnAuthorityDescriptor.php +++ b/src/XML/md/AuthnAuthorityDescriptor.php @@ -11,6 +11,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function preg_split; @@ -20,8 +22,10 @@ * * @package simplesamlphp/saml2 */ -final class AuthnAuthorityDescriptor extends AbstractRoleDescriptorType +final class AuthnAuthorityDescriptor extends AbstractRoleDescriptorType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * AuthnAuthorityDescriptor constructor. * diff --git a/src/XML/md/Company.php b/src/XML/md/Company.php index 227180131..a456d3f46 100644 --- a/src/XML/md/Company.php +++ b/src/XML/md/Company.php @@ -5,6 +5,8 @@ namespace SimpleSAML\SAML2\XML\md; use SimpleSAML\Assert\Assert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -12,8 +14,9 @@ * * @package simplesamlphp/saml2 */ -final class Company extends AbstractMdElement +final class Company extends AbstractMdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/md/ContactPerson.php b/src/XML/md/ContactPerson.php index 67e940ae3..f2a6f4bda 100644 --- a/src/XML/md/ContactPerson.php +++ b/src/XML/md/ContactPerson.php @@ -14,6 +14,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; use SimpleSAML\XML\ExtendableAttributesTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; use function array_change_key_case; @@ -28,10 +30,13 @@ * * @package simplesamlphp/saml2 */ -final class ContactPerson extends AbstractMdElement implements ArrayizableElementInterface +final class ContactPerson extends AbstractMdElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { use ExtendableAttributesTrait; use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:anyAttribute element */ public const XS_ANY_ATTR_NAMESPACE = NS::OTHER; diff --git a/src/XML/md/EmailAddress.php b/src/XML/md/EmailAddress.php index f5373954c..460aa9b21 100644 --- a/src/XML/md/EmailAddress.php +++ b/src/XML/md/EmailAddress.php @@ -7,6 +7,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Exception\ArrayValidationException; use SimpleSAML\XML\ArrayizableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; use function array_key_first; @@ -19,8 +21,11 @@ * * @package simplesamlphp/saml2 */ -final class EmailAddress extends AbstractMdElement implements ArrayizableElementInterface +final class EmailAddress extends AbstractMdElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/md/EncryptionMethod.php b/src/XML/md/EncryptionMethod.php index 5c8a745a9..e76b61f16 100644 --- a/src/XML/md/EncryptionMethod.php +++ b/src/XML/md/EncryptionMethod.php @@ -4,7 +4,8 @@ namespace SimpleSAML\SAML2\XML\md; -use SimpleSAML\SAML2\Constants as C; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\xenc\AbstractEncryptionMethod; /** @@ -12,11 +13,16 @@ * * @package simplesamlphp/saml2 */ -class EncryptionMethod extends AbstractEncryptionMethod +class EncryptionMethod extends AbstractEncryptionMethod implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + + /** @var string */ + public const NS = AbstractMdElement::NS; + /** @var string */ - public const NS = C::NS_MD; + public const NS_PREFIX = AbstractMdElement::NS_PREFIX; /** @var string */ - public const NS_PREFIX = 'md'; + public const SCHEMA = AbstractMdElement::SCHEMA; } diff --git a/src/XML/md/EntitiesDescriptor.php b/src/XML/md/EntitiesDescriptor.php index 82256e2c7..5c3d817f4 100644 --- a/src/XML/md/EntitiesDescriptor.php +++ b/src/XML/md/EntitiesDescriptor.php @@ -12,6 +12,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; /** @@ -19,8 +21,10 @@ * * @package simplesamlphp/saml2 */ -final class EntitiesDescriptor extends AbstractMetadataDocument +final class EntitiesDescriptor extends AbstractMetadataDocument implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * EntitiesDescriptor constructor. * diff --git a/src/XML/md/EntityDescriptor.php b/src/XML/md/EntityDescriptor.php index 9224e4c3e..c59a167db 100644 --- a/src/XML/md/EntityDescriptor.php +++ b/src/XML/md/EntityDescriptor.php @@ -13,6 +13,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; use SimpleSAML\XML\ExtendableAttributesTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; use SimpleSAML\XMLSecurity\XML\ds\Signature; @@ -23,9 +25,10 @@ * * @package simplesamlphp/saml2 */ -final class EntityDescriptor extends AbstractMetadataDocument +final class EntityDescriptor extends AbstractMetadataDocument implements SchemaValidatableElementInterface { use ExtendableAttributesTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:anyAttribute element */ public const XS_ANY_ATTR_NAMESPACE = NS::OTHER; diff --git a/src/XML/md/Extensions.php b/src/XML/md/Extensions.php index 9f6a9fccf..54731410b 100644 --- a/src/XML/md/Extensions.php +++ b/src/XML/md/Extensions.php @@ -25,6 +25,8 @@ use SimpleSAML\SAML2\XML\shibmd\Scope; use SimpleSAML\XML\Chunk; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_key_exists; @@ -33,10 +35,10 @@ * * @package simplesamlphp/saml2 */ -final class Extensions extends AbstractMdElement +final class Extensions extends AbstractMdElement implements SchemaValidatableElementInterface { use ExtensionsTrait; - + use SchemaValidatableElementTrait; /** * Create an Extensions object from its md:Extensions XML representation. diff --git a/src/XML/md/GivenName.php b/src/XML/md/GivenName.php index 9b7dda74b..e6c7dd491 100644 --- a/src/XML/md/GivenName.php +++ b/src/XML/md/GivenName.php @@ -5,6 +5,8 @@ namespace SimpleSAML\SAML2\XML\md; use SimpleSAML\Assert\Assert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -12,8 +14,9 @@ * * @package simplesamlphp/saml2 */ -final class GivenName extends AbstractMdElement +final class GivenName extends AbstractMdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/md/IDPSSODescriptor.php b/src/XML/md/IDPSSODescriptor.php index 41276825c..e6cada20e 100644 --- a/src/XML/md/IDPSSODescriptor.php +++ b/src/XML/md/IDPSSODescriptor.php @@ -12,6 +12,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function preg_split; @@ -21,8 +23,10 @@ * * @package simplesamlphp/saml2 */ -final class IDPSSODescriptor extends AbstractSSODescriptor +final class IDPSSODescriptor extends AbstractSSODescriptor implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * IDPSSODescriptor constructor. * diff --git a/src/XML/md/KeyDescriptor.php b/src/XML/md/KeyDescriptor.php index 9e665c6bb..c96473da5 100644 --- a/src/XML/md/KeyDescriptor.php +++ b/src/XML/md/KeyDescriptor.php @@ -10,6 +10,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\KeyInfo; /** @@ -17,8 +19,10 @@ * * @package simplesamlphp/saml2 */ -final class KeyDescriptor extends AbstractMdElement +final class KeyDescriptor extends AbstractMdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * KeyDescriptor constructor. * diff --git a/src/XML/md/NameIDFormat.php b/src/XML/md/NameIDFormat.php index d5f7e9411..b271864b6 100644 --- a/src/XML/md/NameIDFormat.php +++ b/src/XML/md/NameIDFormat.php @@ -8,6 +8,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; use function trim; @@ -17,8 +19,9 @@ * * @package simplesaml/saml2 */ -final class NameIDFormat extends AbstractMdElement +final class NameIDFormat extends AbstractMdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/md/NameIDMappingService.php b/src/XML/md/NameIDMappingService.php index 26c378a37..91b62e356 100644 --- a/src/XML/md/NameIDMappingService.php +++ b/src/XML/md/NameIDMappingService.php @@ -5,14 +5,18 @@ namespace SimpleSAML\SAML2\XML\md; use SimpleSAML\Assert\Assert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing an md:NameIDMappingService element. * * @package simplesamlphp/saml2 */ -final class NameIDMappingService extends AbstractEndpointType +final class NameIDMappingService extends AbstractEndpointType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * NameIDMappingService constructor. * diff --git a/src/XML/md/Organization.php b/src/XML/md/Organization.php index 6e3f96c4c..7c75dce34 100644 --- a/src/XML/md/Organization.php +++ b/src/XML/md/Organization.php @@ -16,6 +16,8 @@ use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; use SimpleSAML\XML\ExtendableAttributesTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; use function array_change_key_case; @@ -29,10 +31,13 @@ * * @package simplesamlphp/saml2 */ -final class Organization extends AbstractMdElement implements ArrayizableElementInterface +final class Organization extends AbstractMdElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { use ExtendableAttributesTrait; use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:anyAttribute element */ public const XS_ANY_ATTR_NAMESPACE = NS::OTHER; diff --git a/src/XML/md/OrganizationDisplayName.php b/src/XML/md/OrganizationDisplayName.php index a06947228..a30e05700 100644 --- a/src/XML/md/OrganizationDisplayName.php +++ b/src/XML/md/OrganizationDisplayName.php @@ -4,11 +4,15 @@ namespace SimpleSAML\SAML2\XML\md; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; + /** * A localized name representing an organization's name for display purposes. * * @package simplesamlphp/saml2 */ -final class OrganizationDisplayName extends AbstractLocalizedName +final class OrganizationDisplayName extends AbstractLocalizedName implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; } diff --git a/src/XML/md/OrganizationName.php b/src/XML/md/OrganizationName.php index 56b4e93f9..7891505fd 100644 --- a/src/XML/md/OrganizationName.php +++ b/src/XML/md/OrganizationName.php @@ -4,11 +4,15 @@ namespace SimpleSAML\SAML2\XML\md; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; + /** * A localized name representing an organization's name. * * @package simplesamlphp/saml2 */ -final class OrganizationName extends AbstractLocalizedName +final class OrganizationName extends AbstractLocalizedName implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; } diff --git a/src/XML/md/OrganizationURL.php b/src/XML/md/OrganizationURL.php index 5ed2b85b2..fd0210313 100644 --- a/src/XML/md/OrganizationURL.php +++ b/src/XML/md/OrganizationURL.php @@ -4,11 +4,15 @@ namespace SimpleSAML\SAML2\XML\md; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; + /** * A localized name representing an organization's url. * * @package simplesamlphp/saml2 */ -final class OrganizationURL extends AbstractLocalizedURI +final class OrganizationURL extends AbstractLocalizedURI implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; } diff --git a/src/XML/md/PDPDescriptor.php b/src/XML/md/PDPDescriptor.php index 3f0687255..6f150cee2 100644 --- a/src/XML/md/PDPDescriptor.php +++ b/src/XML/md/PDPDescriptor.php @@ -11,6 +11,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function preg_split; @@ -20,8 +22,10 @@ * * @package simplesamlphp/saml2 */ -final class PDPDescriptor extends AbstractRoleDescriptorType +final class PDPDescriptor extends AbstractRoleDescriptorType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * PDPDescriptor constructor. * diff --git a/src/XML/md/RequestedAttribute.php b/src/XML/md/RequestedAttribute.php index 38ffe3d6b..3d106a647 100644 --- a/src/XML/md/RequestedAttribute.php +++ b/src/XML/md/RequestedAttribute.php @@ -6,7 +6,6 @@ use DOMElement; use SimpleSAML\Assert\Assert; -use SimpleSAML\SAML2\Constants as C; use SimpleSAML\SAML2\XML\saml\Attribute; use SimpleSAML\SAML2\XML\saml\AttributeValue; use SimpleSAML\XML\Exception\InvalidDOMElementException; @@ -21,10 +20,13 @@ final class RequestedAttribute extends Attribute { /** @var string */ - public const NS = C::NS_MD; + public const NS = AbstractMdElement::NS; /** @var string */ - public const NS_PREFIX = 'md'; + public const NS_PREFIX = AbstractMdElement::NS_PREFIX; + + /** @var string */ + public const SCHEMA = AbstractMdElement::SCHEMA; /** diff --git a/src/XML/md/SPSSODescriptor.php b/src/XML/md/SPSSODescriptor.php index b8a278bc1..ec6e20521 100644 --- a/src/XML/md/SPSSODescriptor.php +++ b/src/XML/md/SPSSODescriptor.php @@ -11,6 +11,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_filter; @@ -22,8 +24,10 @@ * * @package simplesamlphp/saml2 */ -final class SPSSODescriptor extends AbstractSSODescriptor +final class SPSSODescriptor extends AbstractSSODescriptor implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * SPSSODescriptor constructor. * diff --git a/src/XML/md/ServiceDescription.php b/src/XML/md/ServiceDescription.php index d9097a859..f749c6ac9 100644 --- a/src/XML/md/ServiceDescription.php +++ b/src/XML/md/ServiceDescription.php @@ -4,11 +4,15 @@ namespace SimpleSAML\SAML2\XML\md; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; + /** * A localized name representing a service's description. * * @package simplesamlphp/saml2 */ -final class ServiceDescription extends AbstractLocalizedName +final class ServiceDescription extends AbstractLocalizedName implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; } diff --git a/src/XML/md/ServiceName.php b/src/XML/md/ServiceName.php index cfaf694b9..58f0cf3fd 100644 --- a/src/XML/md/ServiceName.php +++ b/src/XML/md/ServiceName.php @@ -4,11 +4,15 @@ namespace SimpleSAML\SAML2\XML\md; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; + /** * A localized name representing a service's name. * * @package simplesamlphp/saml2 */ -final class ServiceName extends AbstractLocalizedName +final class ServiceName extends AbstractLocalizedName implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; } diff --git a/src/XML/md/SingleSignOnService.php b/src/XML/md/SingleSignOnService.php index 0610ce5f6..2e749d92b 100644 --- a/src/XML/md/SingleSignOnService.php +++ b/src/XML/md/SingleSignOnService.php @@ -5,14 +5,18 @@ namespace SimpleSAML\SAML2\XML\md; use SimpleSAML\Assert\Assert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing an md:SingleSignOnService element. * * @package simplesamlphp/saml2 */ -final class SingleSignOnService extends AbstractEndpointType +final class SingleSignOnService extends AbstractEndpointType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * SingleSignOnService constructor. * diff --git a/src/XML/md/SurName.php b/src/XML/md/SurName.php index 745890f64..4ce4a0325 100644 --- a/src/XML/md/SurName.php +++ b/src/XML/md/SurName.php @@ -5,6 +5,8 @@ namespace SimpleSAML\SAML2\XML\md; use SimpleSAML\Assert\Assert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -12,8 +14,9 @@ * * @package simplesamlphp/saml2 */ -final class SurName extends AbstractMdElement +final class SurName extends AbstractMdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/md/TelephoneNumber.php b/src/XML/md/TelephoneNumber.php index 741328e24..e3e5c191e 100644 --- a/src/XML/md/TelephoneNumber.php +++ b/src/XML/md/TelephoneNumber.php @@ -7,6 +7,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Exception\ArrayValidationException; use SimpleSAML\XML\ArrayizableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; use function array_key_first; @@ -16,8 +18,11 @@ * * @package simplesamlphp/saml2 */ -final class TelephoneNumber extends AbstractMdElement implements ArrayizableElementInterface +final class TelephoneNumber extends AbstractMdElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/mdattr/AbstractMdattrElement.php b/src/XML/mdattr/AbstractMdattrElement.php index 11387ddd2..9217dd54b 100644 --- a/src/XML/mdattr/AbstractMdattrElement.php +++ b/src/XML/mdattr/AbstractMdattrElement.php @@ -19,4 +19,7 @@ abstract class AbstractMdattrElement extends AbstractElement /** @var string */ public const NS_PREFIX = 'mdattr'; + + /** @var string */ + public const SCHEMA = 'resources/schemas/sstc-metadata-attr.xsd'; } diff --git a/src/XML/mdattr/EntityAttributes.php b/src/XML/mdattr/EntityAttributes.php index 66e3523a8..2b8c62ccc 100644 --- a/src/XML/mdattr/EntityAttributes.php +++ b/src/XML/mdattr/EntityAttributes.php @@ -13,6 +13,8 @@ use SimpleSAML\SAML2\XML\saml\AttributeStatement; use SimpleSAML\SAML2\XML\saml\NameID; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_filter; use function array_merge; @@ -24,8 +26,10 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-attr-cs-01.pdf * @package simplesamlphp/saml2 */ -final class EntityAttributes extends AbstractMdattrElement +final class EntityAttributes extends AbstractMdattrElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create a EntityAttributes element. * diff --git a/src/XML/mdrpi/AbstractMdrpiElement.php b/src/XML/mdrpi/AbstractMdrpiElement.php index 4e1222f06..acf42808b 100644 --- a/src/XML/mdrpi/AbstractMdrpiElement.php +++ b/src/XML/mdrpi/AbstractMdrpiElement.php @@ -21,4 +21,7 @@ abstract class AbstractMdrpiElement extends AbstractElement /** @var string */ public const NS_PREFIX = 'mdrpi'; + + /** @var string */ + public const SCHEMA = 'resources/schemas/saml-metadata-rpi-v1.0.xsd'; } diff --git a/src/XML/mdrpi/Publication.php b/src/XML/mdrpi/Publication.php index daa7b8564..8427855c7 100644 --- a/src/XML/mdrpi/Publication.php +++ b/src/XML/mdrpi/Publication.php @@ -13,6 +13,8 @@ use SimpleSAML\SAML2\Exception\ProtocolViolationException; use SimpleSAML\XML\ArrayizableElementInterface; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function preg_replace; @@ -22,8 +24,12 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/saml-metadata-rpi/v1.0/saml-metadata-rpi-v1.0.pdf * @package simplesamlphp/saml2 */ -final class Publication extends AbstractMdrpiElement implements ArrayizableElementInterface +final class Publication extends AbstractMdrpiElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create/parse a mdrpi:PublicationInfo element. * diff --git a/src/XML/mdrpi/PublicationInfo.php b/src/XML/mdrpi/PublicationInfo.php index a33d06a1a..9cac21319 100644 --- a/src/XML/mdrpi/PublicationInfo.php +++ b/src/XML/mdrpi/PublicationInfo.php @@ -13,6 +13,8 @@ use SimpleSAML\SAML2\Exception\ProtocolViolationException; use SimpleSAML\XML\ArrayizableElementInterface; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_change_key_case; use function array_keys; @@ -24,8 +26,12 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/saml-metadata-rpi/v1.0/saml-metadata-rpi-v1.0.pdf * @package simplesamlphp/saml2 */ -final class PublicationInfo extends AbstractMdrpiElement implements ArrayizableElementInterface +final class PublicationInfo extends AbstractMdrpiElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create/parse a mdrpi:PublicationInfo element. * diff --git a/src/XML/mdrpi/PublicationPath.php b/src/XML/mdrpi/PublicationPath.php index d959f88f6..9bc2ce4cc 100644 --- a/src/XML/mdrpi/PublicationPath.php +++ b/src/XML/mdrpi/PublicationPath.php @@ -10,6 +10,8 @@ use SimpleSAML\XML\ArrayizableElementInterface; use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class for handling the mdrpi:PublicationPath element. @@ -17,8 +19,12 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/saml-metadata-rpi/v1.0/saml-metadata-rpi-v1.0.pdf * @package simplesamlphp/saml2 */ -final class PublicationPath extends AbstractMdrpiElement implements ArrayizableElementInterface +final class PublicationPath extends AbstractMdrpiElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create/parse a mdrpi:PublicationPath element. * diff --git a/src/XML/mdrpi/RegistrationInfo.php b/src/XML/mdrpi/RegistrationInfo.php index 54e3f7dd9..d2ffaaee4 100644 --- a/src/XML/mdrpi/RegistrationInfo.php +++ b/src/XML/mdrpi/RegistrationInfo.php @@ -13,6 +13,8 @@ use SimpleSAML\SAML2\Exception\ProtocolViolationException; use SimpleSAML\XML\ArrayizableElementInterface; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function preg_replace; @@ -22,8 +24,12 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/saml-metadata-rpi/v1.0/saml-metadata-rpi-v1.0.pdf * @package simplesamlphp/saml2 */ -final class RegistrationInfo extends AbstractMdrpiElement implements ArrayizableElementInterface +final class RegistrationInfo extends AbstractMdrpiElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create/parse a mdrpi:RegistrationInfo element. * diff --git a/src/XML/mdui/AbstractMduiElement.php b/src/XML/mdui/AbstractMduiElement.php index 83361bfdd..39e54adf3 100644 --- a/src/XML/mdui/AbstractMduiElement.php +++ b/src/XML/mdui/AbstractMduiElement.php @@ -21,4 +21,7 @@ abstract class AbstractMduiElement extends AbstractElement /** @var string */ public const NS_PREFIX = 'mdui'; + + /** @var string */ + public const SCHEMA = 'resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; } diff --git a/src/XML/mdui/DiscoHints.php b/src/XML/mdui/DiscoHints.php index 15bed14b8..937b72876 100644 --- a/src/XML/mdui/DiscoHints.php +++ b/src/XML/mdui/DiscoHints.php @@ -13,6 +13,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\SerializableElementInterface; use SimpleSAML\XML\XsNamespace as NS; @@ -26,9 +28,12 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-ui/v1.0/sstc-saml-metadata-ui-v1.0.pdf * @package simplesamlphp/saml2 */ -final class DiscoHints extends AbstractMduiElement implements ArrayizableElementInterface +final class DiscoHints extends AbstractMduiElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:any element */ public const XS_ANY_ELT_NAMESPACE = NS::OTHER; diff --git a/src/XML/mdui/DomainHint.php b/src/XML/mdui/DomainHint.php index 22111bcaf..7fca048b0 100644 --- a/src/XML/mdui/DomainHint.php +++ b/src/XML/mdui/DomainHint.php @@ -6,6 +6,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Exception\InvalidArgumentException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; use function filter_var; @@ -18,8 +20,9 @@ * * @package simplesamlphp/saml2 */ -final class DomainHint extends AbstractMduiElement +final class DomainHint extends AbstractMduiElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/mdui/GeolocationHint.php b/src/XML/mdui/GeolocationHint.php index b593331ea..d9b9f1de2 100644 --- a/src/XML/mdui/GeolocationHint.php +++ b/src/XML/mdui/GeolocationHint.php @@ -6,6 +6,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -13,8 +15,9 @@ * * @package simplesamlphp/saml2 */ -final class GeolocationHint extends AbstractMduiElement +final class GeolocationHint extends AbstractMduiElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/mdui/IPHint.php b/src/XML/mdui/IPHint.php index a3f41958a..c5ee890c0 100644 --- a/src/XML/mdui/IPHint.php +++ b/src/XML/mdui/IPHint.php @@ -5,6 +5,8 @@ namespace SimpleSAML\SAML2\XML\mdui; use SimpleSAML\Assert\Assert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -12,8 +14,9 @@ * * @package simplesamlphp/saml2 */ -final class IPHint extends AbstractMduiElement +final class IPHint extends AbstractMduiElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/mdui/Keywords.php b/src/XML/mdui/Keywords.php index 070cea32a..58a2aaf15 100644 --- a/src/XML/mdui/Keywords.php +++ b/src/XML/mdui/Keywords.php @@ -10,6 +10,8 @@ use SimpleSAML\XML\ArrayizableElementInterface; use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_key_first; use function explode; @@ -22,8 +24,12 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-ui/v1.0/sstc-saml-metadata-ui-v1.0.pdf * @package simplesamlphp/saml2 */ -final class Keywords extends AbstractMduiElement implements ArrayizableElementInterface +final class Keywords extends AbstractMduiElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a Keywords. * diff --git a/src/XML/mdui/Logo.php b/src/XML/mdui/Logo.php index 0052584d5..e8e577180 100644 --- a/src/XML/mdui/Logo.php +++ b/src/XML/mdui/Logo.php @@ -11,6 +11,8 @@ use SimpleSAML\SAML2\Exception\ArrayValidationException; use SimpleSAML\XML\ArrayizableElementInterface; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; use function filter_var; @@ -24,8 +26,11 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-ui/v1.0/sstc-saml-metadata-ui-v1.0.pdf * @package simplesamlphp/saml2 */ -final class Logo extends AbstractMduiElement implements ArrayizableElementInterface +final class Logo extends AbstractMduiElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/mdui/UIInfo.php b/src/XML/mdui/UIInfo.php index bbb858e1f..8e493b4b7 100644 --- a/src/XML/mdui/UIInfo.php +++ b/src/XML/mdui/UIInfo.php @@ -14,6 +14,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\SerializableElementInterface; use SimpleSAML\XML\XsNamespace as NS; @@ -30,9 +32,12 @@ * @link: http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-metadata-ui/v1.0/sstc-saml-metadata-ui-v1.0.pdf * @package simplesamlphp/saml2 */ -final class UIInfo extends AbstractMduiElement implements ArrayizableElementInterface +final class UIInfo extends AbstractMduiElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:any element */ public const XS_ANY_ELT_NAMESPACE = NS::OTHER; diff --git a/src/XML/saml/AbstractBaseID.php b/src/XML/saml/AbstractBaseID.php index 4cb0d0fe7..dd4d50acb 100644 --- a/src/XML/saml/AbstractBaseID.php +++ b/src/XML/saml/AbstractBaseID.php @@ -15,6 +15,8 @@ use SimpleSAML\XML\Chunk; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\Backend\EncryptionBackend; use SimpleSAML\XMLSecurity\XML\EncryptableElementInterface; @@ -28,10 +30,12 @@ */ abstract class AbstractBaseID extends AbstractBaseIDType implements EncryptableElementInterface, - ExtensionPointInterface + ExtensionPointInterface, + SchemaValidatableElementInterface { use EncryptableElementTrait; use ExtensionPointTrait; + use SchemaValidatableElementTrait; /** @var string */ public const LOCALNAME = 'BaseID'; diff --git a/src/XML/saml/AbstractCondition.php b/src/XML/saml/AbstractCondition.php index 780ca6b2e..9b1ad027c 100644 --- a/src/XML/saml/AbstractCondition.php +++ b/src/XML/saml/AbstractCondition.php @@ -14,6 +14,8 @@ use SimpleSAML\XML\Chunk; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function count; use function explode; @@ -23,9 +25,12 @@ * * @package simplesamlphp/saml2 */ -abstract class AbstractCondition extends AbstractConditionType implements ExtensionPointInterface +abstract class AbstractCondition extends AbstractConditionType implements + ExtensionPointInterface, + SchemaValidatableElementInterface { use ExtensionPointTrait; + use SchemaValidatableElementTrait; /** @var string */ public const LOCALNAME = 'Condition'; diff --git a/src/XML/saml/AbstractStatement.php b/src/XML/saml/AbstractStatement.php index 3a47cd395..7420337d3 100644 --- a/src/XML/saml/AbstractStatement.php +++ b/src/XML/saml/AbstractStatement.php @@ -14,6 +14,8 @@ use SimpleSAML\XML\Chunk; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function count; use function explode; @@ -23,9 +25,12 @@ * * @package simplesamlphp/saml2 */ -abstract class AbstractStatement extends AbstractStatementType implements ExtensionPointInterface +abstract class AbstractStatement extends AbstractStatementType implements + ExtensionPointInterface, + SchemaValidatableElementInterface { use ExtensionPointTrait; + use SchemaValidatableElementTrait; /** @var string */ public const LOCALNAME = 'Statement'; diff --git a/src/XML/saml/Advice.php b/src/XML/saml/Advice.php index b90c248c8..f5e2df2c3 100644 --- a/src/XML/saml/Advice.php +++ b/src/XML/saml/Advice.php @@ -10,6 +10,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; use SimpleSAML\XML\ExtendableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; /** @@ -17,9 +19,10 @@ * * @package simplesaml/saml2 */ -final class Advice extends AbstractSamlElement +final class Advice extends AbstractSamlElement implements SchemaValidatableElementInterface { use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:any element */ public const XS_ANY_ELT_NAMESPACE = NS::OTHER; diff --git a/src/XML/saml/Assertion.php b/src/XML/saml/Assertion.php index 5e43e9713..41aca4b87 100644 --- a/src/XML/saml/Assertion.php +++ b/src/XML/saml/Assertion.php @@ -17,6 +17,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\Utils\Random as RandomUtils; use SimpleSAML\XMLSecurity\Backend\EncryptionBackend; use SimpleSAML\XMLSecurity\XML\ds\Signature; @@ -36,6 +38,7 @@ */ final class Assertion extends AbstractSamlElement implements EncryptableElementInterface, + SchemaValidatableElementInterface, SignableElementInterface, SignedElementInterface { @@ -43,6 +46,7 @@ final class Assertion extends AbstractSamlElement implements EncryptableElementTrait::getBlacklistedAlgorithms insteadof SignedElementTrait; EncryptableElementTrait::getBlacklistedAlgorithms insteadof SignableElementTrait; } + use SchemaValidatableElementTrait; use SignableElementTrait; use SignedElementTrait; diff --git a/src/XML/saml/AssertionIDRef.php b/src/XML/saml/AssertionIDRef.php index 5cd40e481..16abdb539 100644 --- a/src/XML/saml/AssertionIDRef.php +++ b/src/XML/saml/AssertionIDRef.php @@ -8,6 +8,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -15,8 +17,9 @@ * * @package simplesaml/saml2 */ -final class AssertionIDRef extends AbstractSamlElement +final class AssertionIDRef extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/saml/AssertionURIRef.php b/src/XML/saml/AssertionURIRef.php index 557595fd6..364624580 100644 --- a/src/XML/saml/AssertionURIRef.php +++ b/src/XML/saml/AssertionURIRef.php @@ -8,6 +8,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -15,8 +17,9 @@ * * @package simplesaml/saml2 */ -final class AssertionURIRef extends AbstractSamlElement +final class AssertionURIRef extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/saml/Attribute.php b/src/XML/saml/Attribute.php index 52dc79ab1..4f94c6139 100644 --- a/src/XML/saml/Attribute.php +++ b/src/XML/saml/Attribute.php @@ -11,6 +11,8 @@ use SimpleSAML\SAML2\XML\EncryptableElementTrait; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableAttributesTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; use SimpleSAML\XMLSecurity\Backend\EncryptionBackend; use SimpleSAML\XMLSecurity\XML\EncryptableElementInterface; @@ -20,10 +22,13 @@ * * @package simplesamlphp/saml2 */ -class Attribute extends AbstractSamlElement implements EncryptableElementInterface +class Attribute extends AbstractSamlElement implements + EncryptableElementInterface, + SchemaValidatableElementInterface { use EncryptableElementTrait; use ExtendableAttributesTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:anyAttribute element */ public const XS_ANY_ATTR_NAMESPACE = NS::OTHER; diff --git a/src/XML/saml/AttributeStatement.php b/src/XML/saml/AttributeStatement.php index 74b26fa7a..b1f6bdee8 100644 --- a/src/XML/saml/AttributeStatement.php +++ b/src/XML/saml/AttributeStatement.php @@ -8,14 +8,18 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing a SAML2 AttributeStatement * * @package simplesamlphp/saml2 */ -class AttributeStatement extends AbstractStatementType +class AttributeStatement extends AbstractStatementType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * AttributeStatement constructor. * diff --git a/src/XML/saml/AttributeValue.php b/src/XML/saml/AttributeValue.php index 069bc7f01..fabf94fe3 100644 --- a/src/XML/saml/AttributeValue.php +++ b/src/XML/saml/AttributeValue.php @@ -12,6 +12,8 @@ use SimpleSAML\XML\AbstractElement; use SimpleSAML\XML\Chunk; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function class_exists; use function explode; @@ -24,8 +26,10 @@ * * @package simplesamlphp/saml2 */ -class AttributeValue extends AbstractSamlElement +class AttributeValue extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Create an AttributeValue. * @@ -138,6 +142,7 @@ public static function fromXML(DOMElement $xml): static ($xml->getAttributeNS(C::NS_XSI, "nil") === "1" || $xml->getAttributeNS(C::NS_XSI, "nil") === "true") ) { + Assert::isEmpty($xml->nodeValue); Assert::isEmpty($xml->textContent); $value = null; @@ -174,7 +179,6 @@ public function toXML(?DOMElement $parent = null): DOMElement case "NULL": $e->setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xsi', C::NS_XSI); $e->setAttributeNS(C::NS_XSI, 'xsi:nil', '1'); - $e->textContent = ''; break; case "object": if ($value instanceof DateTimeInterface) { diff --git a/src/XML/saml/Audience.php b/src/XML/saml/Audience.php index cf04ac29c..914e55637 100644 --- a/src/XML/saml/Audience.php +++ b/src/XML/saml/Audience.php @@ -8,6 +8,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -15,8 +17,9 @@ * * @package simplesaml/saml2 */ -final class Audience extends AbstractSamlElement +final class Audience extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/saml/AudienceRestriction.php b/src/XML/saml/AudienceRestriction.php index 7043c9ed6..b7e172980 100644 --- a/src/XML/saml/AudienceRestriction.php +++ b/src/XML/saml/AudienceRestriction.php @@ -9,14 +9,18 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * SAML AudienceRestriction data type. * * @package simplesamlphp/saml2 */ -final class AudienceRestriction extends AbstractConditionType +final class AudienceRestriction extends AbstractConditionType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a saml:AudienceRestriction * diff --git a/src/XML/saml/AuthenticatingAuthority.php b/src/XML/saml/AuthenticatingAuthority.php index 5cb312d20..f53f21e8d 100644 --- a/src/XML/saml/AuthenticatingAuthority.php +++ b/src/XML/saml/AuthenticatingAuthority.php @@ -8,6 +8,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -15,8 +17,9 @@ * * @package simplesaml/saml2 */ -final class AuthenticatingAuthority extends AbstractSamlElement +final class AuthenticatingAuthority extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/saml/AuthnContext.php b/src/XML/saml/AuthnContext.php index 5c1b4a04a..a13c8471b 100644 --- a/src/XML/saml/AuthnContext.php +++ b/src/XML/saml/AuthnContext.php @@ -12,6 +12,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_pop; use function is_null; @@ -21,8 +23,10 @@ * * @package simplesamlphp/saml2 */ -final class AuthnContext extends AbstractSamlElement +final class AuthnContext extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize an AuthnContext. * diff --git a/src/XML/saml/AuthnContextClassRef.php b/src/XML/saml/AuthnContextClassRef.php index 664f77c74..3e012cfa1 100644 --- a/src/XML/saml/AuthnContextClassRef.php +++ b/src/XML/saml/AuthnContextClassRef.php @@ -5,6 +5,8 @@ namespace SimpleSAML\SAML2\XML\saml; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -12,8 +14,9 @@ * * @package simplesamlphp/saml2 */ -final class AuthnContextClassRef extends AbstractSamlElement +final class AuthnContextClassRef extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/saml/AuthnContextDecl.php b/src/XML/saml/AuthnContextDecl.php index 2630511c9..46f14c715 100644 --- a/src/XML/saml/AuthnContextDecl.php +++ b/src/XML/saml/AuthnContextDecl.php @@ -9,6 +9,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableAttributesTrait; use SimpleSAML\XML\ExtendableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; /** @@ -16,10 +18,11 @@ * * @package simplesamlphp/saml2 */ -final class AuthnContextDecl extends AbstractSamlElement +final class AuthnContextDecl extends AbstractSamlElement implements SchemaValidatableElementInterface { use ExtendableAttributesTrait; use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:any element */ public const XS_ANY_ELT_NAMESPACE = NS::ANY; diff --git a/src/XML/saml/AuthnContextDeclRef.php b/src/XML/saml/AuthnContextDeclRef.php index a68b77f40..707b08710 100644 --- a/src/XML/saml/AuthnContextDeclRef.php +++ b/src/XML/saml/AuthnContextDeclRef.php @@ -5,6 +5,8 @@ namespace SimpleSAML\SAML2\XML\saml; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -12,8 +14,9 @@ * * @package simplesamlphp/saml2 */ -final class AuthnContextDeclRef extends AbstractSamlElement +final class AuthnContextDeclRef extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/saml/AuthnStatement.php b/src/XML/saml/AuthnStatement.php index 17a76b240..1aa9cdef1 100644 --- a/src/XML/saml/AuthnStatement.php +++ b/src/XML/saml/AuthnStatement.php @@ -13,6 +13,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_pop; use function preg_replace; @@ -22,8 +24,10 @@ * * @package simplesamlphp/saml2 */ -final class AuthnStatement extends AbstractStatementType +final class AuthnStatement extends AbstractStatementType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize an AuthnStatement. * diff --git a/src/XML/saml/AuthzDecisionStatement.php b/src/XML/saml/AuthzDecisionStatement.php index 04d56894e..467bc7334 100644 --- a/src/XML/saml/AuthzDecisionStatement.php +++ b/src/XML/saml/AuthzDecisionStatement.php @@ -14,6 +14,8 @@ use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\SchemaViolationException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use ValueError; use function array_pop; @@ -24,8 +26,10 @@ * * @package simplesamlphp/saml2 */ -final class AuthzDecisionStatement extends AbstractStatementType +final class AuthzDecisionStatement extends AbstractStatementType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize an AuthzDecisionStatement. * diff --git a/src/XML/saml/Conditions.php b/src/XML/saml/Conditions.php index 506635c31..800e1c15e 100644 --- a/src/XML/saml/Conditions.php +++ b/src/XML/saml/Conditions.php @@ -11,6 +11,8 @@ use SimpleSAML\SAML2\Constants as C; use SimpleSAML\SAML2\Exception\ProtocolViolationException; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_pop; @@ -19,8 +21,10 @@ * * @package simplesamlphp/saml2 */ -final class Conditions extends AbstractSamlElement +final class Conditions extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a Conditions element. * diff --git a/src/XML/saml/EncryptedAssertion.php b/src/XML/saml/EncryptedAssertion.php index 9d5e06b53..bee518f44 100644 --- a/src/XML/saml/EncryptedAssertion.php +++ b/src/XML/saml/EncryptedAssertion.php @@ -6,6 +6,8 @@ use SimpleSAML\SAML2\XML\EncryptedElementTrait; use SimpleSAML\XML\DOMDocumentFactory; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\Alg\Encryption\EncryptionAlgorithmInterface; use SimpleSAML\XMLSecurity\XML\EncryptedElementInterface; @@ -14,9 +16,12 @@ * * @package simplesamlphp/saml2 */ -final class EncryptedAssertion extends AbstractSamlElement implements EncryptedElementInterface +final class EncryptedAssertion extends AbstractSamlElement implements + EncryptedElementInterface, + SchemaValidatableElementInterface { use EncryptedElementTrait; + use SchemaValidatableElementTrait; /** @var bool */ protected bool $wasSignedAtConstruction = false; diff --git a/src/XML/saml/EncryptedAttribute.php b/src/XML/saml/EncryptedAttribute.php index 87e68675a..dfa6c84c2 100644 --- a/src/XML/saml/EncryptedAttribute.php +++ b/src/XML/saml/EncryptedAttribute.php @@ -6,6 +6,8 @@ use SimpleSAML\SAML2\XML\EncryptedElementTrait; use SimpleSAML\XML\DOMDocumentFactory; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\Alg\Encryption\EncryptionAlgorithmInterface; use SimpleSAML\XMLSecurity\XML\EncryptedElementInterface; @@ -14,10 +16,12 @@ * * @package simplesamlphp/saml2 */ -class EncryptedAttribute extends AbstractSamlElement implements EncryptedElementInterface +class EncryptedAttribute extends AbstractSamlElement implements + EncryptedElementInterface, + SchemaValidatableElementInterface { use EncryptedElementTrait; - + use SchemaValidatableElementTrait; /** * @inheritDoc diff --git a/src/XML/saml/EncryptedID.php b/src/XML/saml/EncryptedID.php index 0b049c813..4641cfd05 100644 --- a/src/XML/saml/EncryptedID.php +++ b/src/XML/saml/EncryptedID.php @@ -7,6 +7,8 @@ use InvalidArgumentException; use SimpleSAML\SAML2\XML\EncryptedElementTrait; use SimpleSAML\XML\DOMDocumentFactory; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\SerializableElementInterface; use SimpleSAML\XMLSecurity\Alg\Encryption\EncryptionAlgorithmInterface; use SimpleSAML\XMLSecurity\XML\EncryptedElementInterface; @@ -18,10 +20,13 @@ * * @package simplesamlphp/saml2 */ -class EncryptedID extends AbstractSamlElement implements EncryptedElementInterface, IdentifierInterface +class EncryptedID extends AbstractSamlElement implements + EncryptedElementInterface, + IdentifierInterface, + SchemaValidatableElementInterface { use EncryptedElementTrait; - + use SchemaValidatableElementTrait; /** * @inheritDoc diff --git a/src/XML/saml/Evidence.php b/src/XML/saml/Evidence.php index 01bded9e5..58c2783c4 100644 --- a/src/XML/saml/Evidence.php +++ b/src/XML/saml/Evidence.php @@ -9,14 +9,18 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing a saml:Evidence element. * * @package simplesaml/saml2 */ -final class Evidence extends AbstractSamlElement +final class Evidence extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * @param \SimpleSAML\SAML2\XML\saml\AssertionIDRef[] $assertionIDRef * @param \SimpleSAML\SAML2\XML\saml\AssertionURIRef[] $assertionURIRef diff --git a/src/XML/saml/Issuer.php b/src/XML/saml/Issuer.php index 92e7a7981..7112663d7 100644 --- a/src/XML/saml/Issuer.php +++ b/src/XML/saml/Issuer.php @@ -7,14 +7,18 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\SAML2\Constants as C; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing the saml:Issuer element. * * @package simplesamlphp/saml2 */ -final class Issuer extends NameIDType +final class Issuer extends NameIDType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a saml:Issuer * diff --git a/src/XML/saml/NameID.php b/src/XML/saml/NameID.php index 240007b7c..812afec52 100644 --- a/src/XML/saml/NameID.php +++ b/src/XML/saml/NameID.php @@ -8,6 +8,8 @@ use SimpleSAML\SAML2\Constants as C; use SimpleSAML\SAML2\Exception\ArrayValidationException; use SimpleSAML\SAML2\XML\EncryptableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\Backend\EncryptionBackend; use SimpleSAML\XMLSecurity\XML\EncryptableElementInterface; @@ -21,9 +23,12 @@ * * @package simplesamlphp/saml2 */ -final class NameID extends NameIDType implements EncryptableElementInterface +final class NameID extends NameIDType implements + EncryptableElementInterface, + SchemaValidatableElementInterface { use EncryptableElementTrait; + use SchemaValidatableElementTrait; /** * Initialize a saml:NameID diff --git a/src/XML/saml/OneTimeUse.php b/src/XML/saml/OneTimeUse.php index d22d0d750..bbecfcd92 100644 --- a/src/XML/saml/OneTimeUse.php +++ b/src/XML/saml/OneTimeUse.php @@ -7,14 +7,18 @@ use DOMElement; use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing a saml:OneTimeUse element. * * @package simplesaml/saml2 */ -final class OneTimeUse extends AbstractConditionType +final class OneTimeUse extends AbstractConditionType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Convert XML into an OneTimeUse * diff --git a/src/XML/saml/ProxyRestriction.php b/src/XML/saml/ProxyRestriction.php index 7b8759ef5..99f6370b8 100644 --- a/src/XML/saml/ProxyRestriction.php +++ b/src/XML/saml/ProxyRestriction.php @@ -8,14 +8,18 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function strval; /** * @package simplesamlphp/saml2 */ -final class ProxyRestriction extends AbstractConditionType +final class ProxyRestriction extends AbstractConditionType implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * ProxyRestriction constructor. * diff --git a/src/XML/saml/Subject.php b/src/XML/saml/Subject.php index bb7c4ea1c..6ed9f7478 100644 --- a/src/XML/saml/Subject.php +++ b/src/XML/saml/Subject.php @@ -10,15 +10,18 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing SAML 2 Subject element. * * @package simplesamlphp/saml2 */ -final class Subject extends AbstractSamlElement +final class Subject extends AbstractSamlElement implements SchemaValidatableElementInterface { use IdentifierTrait; + use SchemaValidatableElementTrait; /** * Initialize a Subject element. diff --git a/src/XML/saml/SubjectConfirmation.php b/src/XML/saml/SubjectConfirmation.php index 7be8d92fd..4b6af1c29 100644 --- a/src/XML/saml/SubjectConfirmation.php +++ b/src/XML/saml/SubjectConfirmation.php @@ -10,6 +10,8 @@ use SimpleSAML\SAML2\XML\IdentifierTrait; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_pop; @@ -18,10 +20,10 @@ * * @package simplesamlphp/saml2 */ -final class SubjectConfirmation extends AbstractSamlElement +final class SubjectConfirmation extends AbstractSamlElement implements SchemaValidatableElementInterface { use IdentifierTrait; - + use SchemaValidatableElementTrait; /** * Initialize (and parse) a SubjectConfirmation element. diff --git a/src/XML/saml/SubjectConfirmationData.php b/src/XML/saml/SubjectConfirmationData.php index a3a2b7bc2..1fad8c8a1 100644 --- a/src/XML/saml/SubjectConfirmationData.php +++ b/src/XML/saml/SubjectConfirmationData.php @@ -14,6 +14,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableAttributesTrait; use SimpleSAML\XML\ExtendableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; use function filter_var; @@ -24,10 +26,11 @@ * * @package simplesamlphp/saml2 */ -final class SubjectConfirmationData extends AbstractSamlElement +final class SubjectConfirmationData extends AbstractSamlElement implements SchemaValidatableElementInterface { use ExtendableAttributesTrait; use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:any element */ public const XS_ANY_ELT_NAMESPACE = NS::ANY; diff --git a/src/XML/saml/SubjectLocality.php b/src/XML/saml/SubjectLocality.php index 292bfbd81..5481b9f2e 100644 --- a/src/XML/saml/SubjectLocality.php +++ b/src/XML/saml/SubjectLocality.php @@ -7,14 +7,18 @@ use DOMElement; use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class representing SAML2 SubjectLocality * * @package simplesamlphp/saml2 */ -final class SubjectLocality extends AbstractSamlElement +final class SubjectLocality extends AbstractSamlElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize an SubjectLocality. * diff --git a/src/XML/samlp/Artifact.php b/src/XML/samlp/Artifact.php index f4d2bda67..66da4b5c3 100644 --- a/src/XML/samlp/Artifact.php +++ b/src/XML/samlp/Artifact.php @@ -8,15 +8,18 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Base64ElementTrait; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class for SAML artifacts. * * @package simplesamlphp/saml2 */ -final class Artifact extends AbstractSamlpElement +final class Artifact extends AbstractSamlpElement implements SchemaValidatableElementInterface { use Base64ElementTrait; + use SchemaValidatableElementTrait; /** * Initialize an artifact. diff --git a/src/XML/samlp/ArtifactResolve.php b/src/XML/samlp/ArtifactResolve.php index e0eda2c7e..e7610dae1 100644 --- a/src/XML/samlp/ArtifactResolve.php +++ b/src/XML/samlp/ArtifactResolve.php @@ -15,6 +15,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_pop; @@ -27,8 +29,10 @@ * * @package simplesamlphp/saml2 */ -class ArtifactResolve extends AbstractRequest +class ArtifactResolve extends AbstractRequest implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize an ArtifactResolve. * diff --git a/src/XML/samlp/ArtifactResponse.php b/src/XML/samlp/ArtifactResponse.php index 7ff464838..f0e2216fd 100644 --- a/src/XML/samlp/ArtifactResponse.php +++ b/src/XML/samlp/ArtifactResponse.php @@ -15,6 +15,8 @@ use SimpleSAML\SAML2\XML\saml\Issuer; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_pop; @@ -27,8 +29,10 @@ * * @package simplesamlphp/saml2 */ -class ArtifactResponse extends AbstractStatusResponse +class ArtifactResponse extends AbstractStatusResponse implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Constructor for SAML 2 ArtifactResponse. * diff --git a/src/XML/samlp/AssertionIDRequest.php b/src/XML/samlp/AssertionIDRequest.php index a6ad17789..22adeb0a2 100644 --- a/src/XML/samlp/AssertionIDRequest.php +++ b/src/XML/samlp/AssertionIDRequest.php @@ -16,6 +16,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_pop; @@ -25,8 +27,10 @@ /** * @package simplesamlphp/saml2 */ -final class AssertionIDRequest extends AbstractRequest +final class AssertionIDRequest extends AbstractRequest implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize an AssertionIDRequest. * diff --git a/src/XML/samlp/AttributeQuery.php b/src/XML/samlp/AttributeQuery.php index 92ea47113..900491e26 100644 --- a/src/XML/samlp/AttributeQuery.php +++ b/src/XML/samlp/AttributeQuery.php @@ -18,6 +18,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_pop; @@ -38,8 +40,10 @@ * * @package simplesamlphp/saml2 */ -class AttributeQuery extends AbstractSubjectQuery +class AttributeQuery extends AbstractSubjectQuery implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Constructor for SAML 2 AttributeQuery. * diff --git a/src/XML/samlp/AuthnQuery.php b/src/XML/samlp/AuthnQuery.php index f4c24b242..618f913b3 100644 --- a/src/XML/samlp/AuthnQuery.php +++ b/src/XML/samlp/AuthnQuery.php @@ -17,6 +17,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_pop; @@ -28,8 +30,10 @@ * * @package simplesamlphp/saml2 */ -final class AuthnQuery extends AbstractSubjectQuery +final class AuthnQuery extends AbstractSubjectQuery implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Constructor for SAML 2 AuthnQuery. * diff --git a/src/XML/samlp/AuthnRequest.php b/src/XML/samlp/AuthnRequest.php index 9d82992aa..c37323867 100644 --- a/src/XML/samlp/AuthnRequest.php +++ b/src/XML/samlp/AuthnRequest.php @@ -16,6 +16,8 @@ use SimpleSAML\SAML2\XML\saml\Subject; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_pop; @@ -26,8 +28,10 @@ * * @package simplesamlphp/saml2 */ -class AuthnRequest extends AbstractRequest +class AuthnRequest extends AbstractRequest implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Constructor for SAML 2 AuthnRequest * diff --git a/src/XML/samlp/AuthzDecisionQuery.php b/src/XML/samlp/AuthzDecisionQuery.php index a43c889f0..4ca5567f2 100644 --- a/src/XML/samlp/AuthzDecisionQuery.php +++ b/src/XML/samlp/AuthzDecisionQuery.php @@ -20,6 +20,8 @@ use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\SchemaViolationException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function version_compare; @@ -29,8 +31,10 @@ * * @package simplesamlphp/saml2 */ -final class AuthzDecisionQuery extends AbstractSubjectQuery +final class AuthzDecisionQuery extends AbstractSubjectQuery implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Constructor for SAML 2 AuthzDecisionQuery. * diff --git a/src/XML/samlp/Extensions.php b/src/XML/samlp/Extensions.php index 2ba3cdc9e..5ab0f9041 100644 --- a/src/XML/samlp/Extensions.php +++ b/src/XML/samlp/Extensions.php @@ -10,15 +10,18 @@ use SimpleSAML\SAML2\XML\ExtensionsTrait; use SimpleSAML\XML\Chunk; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * Class for handling SAML2 extensions. * * @package simplesamlphp/saml2 */ -final class Extensions extends AbstractSamlpElement +final class Extensions extends AbstractSamlpElement implements SchemaValidatableElementInterface { use ExtensionsTrait; + use SchemaValidatableElementTrait; /** * Create an Extensions object from its samlp:Extensions XML representation. diff --git a/src/XML/samlp/GetComplete.php b/src/XML/samlp/GetComplete.php index 0df7865ca..affc3f535 100644 --- a/src/XML/samlp/GetComplete.php +++ b/src/XML/samlp/GetComplete.php @@ -9,6 +9,8 @@ use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\SAML2\Exception\ArrayValidationException; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; use function array_key_first; @@ -18,8 +20,9 @@ * * @package simplesaml/saml2 */ -final class GetComplete extends AbstractSamlpElement +final class GetComplete extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/samlp/IDPEntry.php b/src/XML/samlp/IDPEntry.php index 9d6bf8bb3..34d1f993c 100644 --- a/src/XML/samlp/IDPEntry.php +++ b/src/XML/samlp/IDPEntry.php @@ -9,6 +9,8 @@ use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\SAML2\Exception\ArrayValidationException; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_change_key_case; use function array_filter; @@ -20,8 +22,10 @@ * * @package simplesamlphp/saml2 */ -final class IDPEntry extends AbstractSamlpElement +final class IDPEntry extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize an IDPEntry element. * diff --git a/src/XML/samlp/IDPList.php b/src/XML/samlp/IDPList.php index 54d6d9f35..df698b8e6 100644 --- a/src/XML/samlp/IDPList.php +++ b/src/XML/samlp/IDPList.php @@ -11,6 +11,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_change_key_case; use function array_filter; @@ -23,8 +25,10 @@ * * @package simplesamlphp/saml2 */ -final class IDPList extends AbstractSamlpElement +final class IDPList extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize an IDPList element. * diff --git a/src/XML/samlp/LogoutRequest.php b/src/XML/samlp/LogoutRequest.php index 988ed58b0..665dd68fc 100644 --- a/src/XML/samlp/LogoutRequest.php +++ b/src/XML/samlp/LogoutRequest.php @@ -21,6 +21,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_pop; @@ -30,10 +32,10 @@ * * @package simplesamlphp/saml2 */ -final class LogoutRequest extends AbstractRequest +final class LogoutRequest extends AbstractRequest implements SchemaValidatableElementInterface { use IdentifierTrait; - + use SchemaValidatableElementTrait; /** * Constructor for SAML 2 AttributeQuery. diff --git a/src/XML/samlp/LogoutResponse.php b/src/XML/samlp/LogoutResponse.php index 2bdb8bf2a..0f86636ea 100644 --- a/src/XML/samlp/LogoutResponse.php +++ b/src/XML/samlp/LogoutResponse.php @@ -13,6 +13,8 @@ use SimpleSAML\SAML2\Exception\ProtocolViolationException; use SimpleSAML\SAML2\XML\saml\Issuer; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_pop; @@ -23,8 +25,10 @@ * * @package simplesamlphp/saml2 */ -final class LogoutResponse extends AbstractStatusResponse +final class LogoutResponse extends AbstractStatusResponse implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Constructor for SAML 2 LogoutResponse. * diff --git a/src/XML/samlp/NameIDPolicy.php b/src/XML/samlp/NameIDPolicy.php index cdc275caa..9d817ed46 100644 --- a/src/XML/samlp/NameIDPolicy.php +++ b/src/XML/samlp/NameIDPolicy.php @@ -10,6 +10,8 @@ use SimpleSAML\SAML2\Exception\ArrayValidationException; use SimpleSAML\XML\ArrayizableElementInterface; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_change_key_case; use function array_filter; @@ -22,8 +24,12 @@ * * @package simplesamlphp/saml2 */ -final class NameIDPolicy extends AbstractSamlpElement implements ArrayizableElementInterface +final class NameIDPolicy extends AbstractSamlpElement implements + ArrayizableElementInterface, + SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a NameIDPolicy. * diff --git a/src/XML/samlp/RequestedAuthnContext.php b/src/XML/samlp/RequestedAuthnContext.php index af3ffc3d3..4ef9b688c 100644 --- a/src/XML/samlp/RequestedAuthnContext.php +++ b/src/XML/samlp/RequestedAuthnContext.php @@ -12,6 +12,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\SchemaViolationException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_merge; @@ -20,8 +22,10 @@ * * @package simplesamlphp/saml2 */ -final class RequestedAuthnContext extends AbstractSamlpElement +final class RequestedAuthnContext extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a RequestedAuthnContext. * diff --git a/src/XML/samlp/RequesterID.php b/src/XML/samlp/RequesterID.php index 916d44fae..0808dd2ed 100644 --- a/src/XML/samlp/RequesterID.php +++ b/src/XML/samlp/RequesterID.php @@ -9,6 +9,8 @@ use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\SAML2\Exception\ArrayValidationException; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; use function array_key_first; @@ -18,8 +20,9 @@ * * @package simplesaml/saml2 */ -final class RequesterID extends AbstractSamlpElement +final class RequesterID extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/samlp/Response.php b/src/XML/samlp/Response.php index b463ede0f..613a3fc40 100644 --- a/src/XML/samlp/Response.php +++ b/src/XML/samlp/Response.php @@ -18,6 +18,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XMLSecurity\XML\ds\Signature; use function array_merge; @@ -28,8 +30,10 @@ * * @package simplesamlphp/saml2 */ -class Response extends AbstractStatusResponse +class Response extends AbstractStatusResponse implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Constructor for SAML 2 response messages. * diff --git a/src/XML/samlp/Scoping.php b/src/XML/samlp/Scoping.php index 7d63dff46..7a536019d 100644 --- a/src/XML/samlp/Scoping.php +++ b/src/XML/samlp/Scoping.php @@ -8,6 +8,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_pop; @@ -16,8 +18,10 @@ * * @package simplesamlphp/saml2 */ -final class Scoping extends AbstractSamlpElement +final class Scoping extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a Scoping element. * diff --git a/src/XML/samlp/SessionIndex.php b/src/XML/samlp/SessionIndex.php index 9a7a86db8..2d58e589d 100644 --- a/src/XML/samlp/SessionIndex.php +++ b/src/XML/samlp/SessionIndex.php @@ -7,6 +7,8 @@ use DOMElement; use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -14,8 +16,9 @@ * * @package simplesaml/saml2 */ -final class SessionIndex extends AbstractSamlpElement +final class SessionIndex extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/samlp/Status.php b/src/XML/samlp/Status.php index e43c9df72..6d7cfaa10 100644 --- a/src/XML/samlp/Status.php +++ b/src/XML/samlp/Status.php @@ -11,6 +11,8 @@ use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\Exception\MissingElementException; use SimpleSAML\XML\Exception\TooManyElementsException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use function array_pop; @@ -19,8 +21,10 @@ * * @package simplesamlphp/saml2 */ -final class Status extends AbstractSamlpElement +final class Status extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a samlp:Status * diff --git a/src/XML/samlp/StatusCode.php b/src/XML/samlp/StatusCode.php index 9b6919636..d77cc8190 100644 --- a/src/XML/samlp/StatusCode.php +++ b/src/XML/samlp/StatusCode.php @@ -9,14 +9,18 @@ use SimpleSAML\SAML2\Assert\Assert as SAMLAssert; use SimpleSAML\SAML2\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; /** * SAML StatusCode data type. * * @package simplesamlphp/saml2 */ -final class StatusCode extends AbstractSamlpElement +final class StatusCode extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; + /** * Initialize a samlp:StatusCode * diff --git a/src/XML/samlp/StatusDetail.php b/src/XML/samlp/StatusDetail.php index 24e058226..a21059f04 100644 --- a/src/XML/samlp/StatusDetail.php +++ b/src/XML/samlp/StatusDetail.php @@ -8,6 +8,8 @@ use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableElementTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; /** @@ -15,9 +17,10 @@ * * @package simplesamlphp/saml2 */ -final class StatusDetail extends AbstractSamlpElement +final class StatusDetail extends AbstractSamlpElement implements SchemaValidatableElementInterface { use ExtendableElementTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:any element */ public const XS_ANY_ELT_NAMESPACE = NS::ANY; diff --git a/src/XML/samlp/StatusMessage.php b/src/XML/samlp/StatusMessage.php index d7deb2fa7..378db03a0 100644 --- a/src/XML/samlp/StatusMessage.php +++ b/src/XML/samlp/StatusMessage.php @@ -7,6 +7,8 @@ use DOMElement; use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -14,8 +16,9 @@ * * @package simplesaml/saml2 */ -final class StatusMessage extends AbstractSamlpElement +final class StatusMessage extends AbstractSamlpElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/src/XML/shibmd/AbstractShibmdElement.php b/src/XML/shibmd/AbstractShibmdElement.php index 727783d84..c9d20a77c 100644 --- a/src/XML/shibmd/AbstractShibmdElement.php +++ b/src/XML/shibmd/AbstractShibmdElement.php @@ -19,4 +19,7 @@ abstract class AbstractShibmdElement extends AbstractElement /** @var string */ public const NS_PREFIX = 'shibmd'; + + /** @var string */ + public const SCHEMA = 'resources/schemas/sstc-saml-metadata-shibmd-v1.0.xsd'; } diff --git a/src/XML/shibmd/KeyAuthority.php b/src/XML/shibmd/KeyAuthority.php index 9e4c2bab6..d9ca6248a 100644 --- a/src/XML/shibmd/KeyAuthority.php +++ b/src/XML/shibmd/KeyAuthority.php @@ -9,6 +9,8 @@ use SimpleSAML\XML\Constants as C; use SimpleSAML\XML\Exception\InvalidDOMElementException; use SimpleSAML\XML\ExtendableAttributesTrait; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\XsNamespace as NS; use SimpleSAML\XMLSecurity\XML\ds\KeyInfo; @@ -20,9 +22,10 @@ * @link https://wiki.shibboleth.net/confluence/display/SC/ShibMetaExt+V1.0 * @package simplesamlphp/saml2 */ -final class KeyAuthority extends AbstractShibmdElement +final class KeyAuthority extends AbstractShibmdElement implements SchemaValidatableElementInterface { use ExtendableAttributesTrait; + use SchemaValidatableElementTrait; /** The namespace-attribute for the xs:anyAttribute element */ public const XS_ANY_ATTR_NAMESPACE = NS::OTHER; diff --git a/src/XML/shibmd/Scope.php b/src/XML/shibmd/Scope.php index e5b759d93..6e087dbfa 100644 --- a/src/XML/shibmd/Scope.php +++ b/src/XML/shibmd/Scope.php @@ -7,6 +7,8 @@ use DOMElement; use SimpleSAML\Assert\Assert; use SimpleSAML\XML\Exception\InvalidDOMElementException; +use SimpleSAML\XML\SchemaValidatableElementInterface; +use SimpleSAML\XML\SchemaValidatableElementTrait; use SimpleSAML\XML\StringElementTrait; /** @@ -15,8 +17,9 @@ * @link https://wiki.shibboleth.net/confluence/display/SC/ShibMetaExt+V1.0 * @package simplesamlphp/saml2 */ -final class Scope extends AbstractShibmdElement +final class Scope extends AbstractShibmdElement implements SchemaValidatableElementInterface { + use SchemaValidatableElementTrait; use StringElementTrait; diff --git a/tests/SAML2/XML/alg/DigestMethodTest.php b/tests/SAML2/XML/alg/DigestMethodTest.php index 63736f158..117f8d9ca 100644 --- a/tests/SAML2/XML/alg/DigestMethodTest.php +++ b/tests/SAML2/XML/alg/DigestMethodTest.php @@ -37,9 +37,6 @@ final class DigestMethodTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) - . '/resources/schemas/sstc-saml-metadata-algsupport-v1.0.xsd'; - self::$testedClass = DigestMethod::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/alg/SigningMethodTest.php b/tests/SAML2/XML/alg/SigningMethodTest.php index a73561bd4..9bc124c0a 100644 --- a/tests/SAML2/XML/alg/SigningMethodTest.php +++ b/tests/SAML2/XML/alg/SigningMethodTest.php @@ -37,9 +37,6 @@ final class SigningMethodTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) - . '/resources/schemas/sstc-saml-metadata-algsupport-v1.0.xsd'; - self::$testedClass = SigningMethod::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/ecp/RelayStateTest.php b/tests/SAML2/XML/ecp/RelayStateTest.php index d740eab17..a6032d3a9 100644 --- a/tests/SAML2/XML/ecp/RelayStateTest.php +++ b/tests/SAML2/XML/ecp/RelayStateTest.php @@ -34,8 +34,6 @@ final class RelayStateTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-ecp-2.0.xsd'; - self::$testedClass = RelayState::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/ecp/RequestAuthenticatedTest.php b/tests/SAML2/XML/ecp/RequestAuthenticatedTest.php index 21941d9eb..31c8aa9b9 100644 --- a/tests/SAML2/XML/ecp/RequestAuthenticatedTest.php +++ b/tests/SAML2/XML/ecp/RequestAuthenticatedTest.php @@ -34,8 +34,6 @@ final class RequestAuthenticatedTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-ecp-2.0.xsd'; - self::$testedClass = RequestAuthenticated::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/ecp/RequestTest.php b/tests/SAML2/XML/ecp/RequestTest.php index 46166f5da..ebce837d0 100644 --- a/tests/SAML2/XML/ecp/RequestTest.php +++ b/tests/SAML2/XML/ecp/RequestTest.php @@ -38,8 +38,6 @@ final class RequestTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-ecp-2.0.xsd'; - self::$testedClass = Request::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/ecp/ResponseTest.php b/tests/SAML2/XML/ecp/ResponseTest.php index 56922a103..bfc0d43a4 100644 --- a/tests/SAML2/XML/ecp/ResponseTest.php +++ b/tests/SAML2/XML/ecp/ResponseTest.php @@ -37,8 +37,6 @@ final class ResponseTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-ecp-2.0.xsd'; - self::$testedClass = Response::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/ecp/SubjectConfirmationTest.php b/tests/SAML2/XML/ecp/SubjectConfirmationTest.php index 762112c9f..2f49ff981 100644 --- a/tests/SAML2/XML/ecp/SubjectConfirmationTest.php +++ b/tests/SAML2/XML/ecp/SubjectConfirmationTest.php @@ -41,8 +41,6 @@ final class SubjectConfirmationTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-ecp-2.0.xsd'; - self::$testedClass = SubjectConfirmation::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/emd/RepublishRequestTest.php b/tests/SAML2/XML/emd/RepublishRequestTest.php index d434efeee..279f8f7a8 100644 --- a/tests/SAML2/XML/emd/RepublishRequestTest.php +++ b/tests/SAML2/XML/emd/RepublishRequestTest.php @@ -37,8 +37,6 @@ final class RepublishRequestTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/eduidmd.xsd'; - self::$testedClass = RepublishRequest::class; self::$arrayRepresentation = [ diff --git a/tests/SAML2/XML/idpdisc/DiscoveryResponseTest.php b/tests/SAML2/XML/idpdisc/DiscoveryResponseTest.php index 919da24cf..3d94d9fd9 100644 --- a/tests/SAML2/XML/idpdisc/DiscoveryResponseTest.php +++ b/tests/SAML2/XML/idpdisc/DiscoveryResponseTest.php @@ -48,8 +48,6 @@ final class DiscoveryResponseTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-idp-discovery.xsd'; - self::$testedClass = DiscoveryResponse::class; self::$attr = new XMLAttribute('urn:x-simplesamlphp:namespace', 'ssp', 'attr1', 'testval1'); diff --git a/tests/SAML2/XML/init/RequestInitiatorTest.php b/tests/SAML2/XML/init/RequestInitiatorTest.php index 49915d68a..8ad7d37eb 100644 --- a/tests/SAML2/XML/init/RequestInitiatorTest.php +++ b/tests/SAML2/XML/init/RequestInitiatorTest.php @@ -45,8 +45,6 @@ public static function setUpBeforeClass(): void 'SomeExtension', )->documentElement); - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-request-initiation.xsd'; - self::$testedClass = RequestInitiator::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/AdditionalMetadataLocationTest.php b/tests/SAML2/XML/md/AdditionalMetadataLocationTest.php index 660045714..5d87eb259 100644 --- a/tests/SAML2/XML/md/AdditionalMetadataLocationTest.php +++ b/tests/SAML2/XML/md/AdditionalMetadataLocationTest.php @@ -37,8 +37,6 @@ final class AdditionalMetadataLocationTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AdditionalMetadataLocation::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/AffiliateMemberTest.php b/tests/SAML2/XML/md/AffiliateMemberTest.php index 1954f4800..406358773 100644 --- a/tests/SAML2/XML/md/AffiliateMemberTest.php +++ b/tests/SAML2/XML/md/AffiliateMemberTest.php @@ -38,8 +38,6 @@ final class AffiliateMemberTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AffiliateMember::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/AffiliationDescriptorTest.php b/tests/SAML2/XML/md/AffiliationDescriptorTest.php index 155232d98..433de1a0e 100644 --- a/tests/SAML2/XML/md/AffiliationDescriptorTest.php +++ b/tests/SAML2/XML/md/AffiliationDescriptorTest.php @@ -50,8 +50,6 @@ final class AffiliationDescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AffiliationDescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/ArtifactResolutionServiceTest.php b/tests/SAML2/XML/md/ArtifactResolutionServiceTest.php index 9e4df6cb5..9dc045be2 100644 --- a/tests/SAML2/XML/md/ArtifactResolutionServiceTest.php +++ b/tests/SAML2/XML/md/ArtifactResolutionServiceTest.php @@ -55,8 +55,6 @@ public static function setUpBeforeClass(): void self::$attr = new XMLAttribute('urn:x-simplesamlphp:namespace', 'ssp', 'attr1', 'testval1'); - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = ArtifactResolutionService::class; self::$arrayRepresentation = [ diff --git a/tests/SAML2/XML/md/AssertionConsumerServiceTest.php b/tests/SAML2/XML/md/AssertionConsumerServiceTest.php index 131792925..aa92c175f 100644 --- a/tests/SAML2/XML/md/AssertionConsumerServiceTest.php +++ b/tests/SAML2/XML/md/AssertionConsumerServiceTest.php @@ -53,8 +53,6 @@ public static function setUpBeforeClass(): void self::$attr = new XMLAttribute('urn:x-simplesamlphp:namespace', 'ssp', 'attr1', 'testval1'); - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AssertionConsumerService::class; self::$arrayRepresentation = [ diff --git a/tests/SAML2/XML/md/AttributeAuthorityDescriptorTest.php b/tests/SAML2/XML/md/AttributeAuthorityDescriptorTest.php index c0b428834..e927016a1 100644 --- a/tests/SAML2/XML/md/AttributeAuthorityDescriptorTest.php +++ b/tests/SAML2/XML/md/AttributeAuthorityDescriptorTest.php @@ -61,8 +61,6 @@ final class AttributeAuthorityDescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AttributeAuthorityDescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/AttributeConsumingServiceTest.php b/tests/SAML2/XML/md/AttributeConsumingServiceTest.php index 5f06fcfd2..4c9329386 100644 --- a/tests/SAML2/XML/md/AttributeConsumingServiceTest.php +++ b/tests/SAML2/XML/md/AttributeConsumingServiceTest.php @@ -45,8 +45,6 @@ final class AttributeConsumingServiceTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AttributeConsumingService::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/AttributeProfileTest.php b/tests/SAML2/XML/md/AttributeProfileTest.php index 2e9ff3976..0d5f3c990 100644 --- a/tests/SAML2/XML/md/AttributeProfileTest.php +++ b/tests/SAML2/XML/md/AttributeProfileTest.php @@ -35,8 +35,6 @@ final class AttributeProfileTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AttributeProfile::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/AuthnAuthorityDescriptorTest.php b/tests/SAML2/XML/md/AuthnAuthorityDescriptorTest.php index 325167792..e968f855d 100644 --- a/tests/SAML2/XML/md/AuthnAuthorityDescriptorTest.php +++ b/tests/SAML2/XML/md/AuthnAuthorityDescriptorTest.php @@ -55,8 +55,6 @@ final class AuthnAuthorityDescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AuthnAuthorityDescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/CompanyTest.php b/tests/SAML2/XML/md/CompanyTest.php index ee82ee6d0..139530b56 100644 --- a/tests/SAML2/XML/md/CompanyTest.php +++ b/tests/SAML2/XML/md/CompanyTest.php @@ -34,8 +34,6 @@ final class CompanyTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = Company::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/ContactPersonTest.php b/tests/SAML2/XML/md/ContactPersonTest.php index 1f47b58ea..ab8db0849 100644 --- a/tests/SAML2/XML/md/ContactPersonTest.php +++ b/tests/SAML2/XML/md/ContactPersonTest.php @@ -51,8 +51,6 @@ final class ContactPersonTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = ContactPerson::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/EmailAddressTest.php b/tests/SAML2/XML/md/EmailAddressTest.php index 638eb35c5..c469bbef0 100644 --- a/tests/SAML2/XML/md/EmailAddressTest.php +++ b/tests/SAML2/XML/md/EmailAddressTest.php @@ -34,8 +34,6 @@ final class EmailAddressTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = EmailAddress::class; self::$arrayRepresentation = ['mailto:john.doe@example.org']; diff --git a/tests/SAML2/XML/md/EndpointTypeTest.php b/tests/SAML2/XML/md/EndpointTypeTest.php index cff29493d..a8b3ab4b8 100644 --- a/tests/SAML2/XML/md/EndpointTypeTest.php +++ b/tests/SAML2/XML/md/EndpointTypeTest.php @@ -52,8 +52,6 @@ public static function setUpBeforeClass(): void 'Some', ); - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = AttributeService::class; self::$arrayRepresentation = [ diff --git a/tests/SAML2/XML/md/EntitiesDescriptorTest.php b/tests/SAML2/XML/md/EntitiesDescriptorTest.php index 52210c6c3..d484afa79 100644 --- a/tests/SAML2/XML/md/EntitiesDescriptorTest.php +++ b/tests/SAML2/XML/md/EntitiesDescriptorTest.php @@ -47,8 +47,6 @@ final class EntitiesDescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = EntitiesDescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/EntityDescriptorTest.php b/tests/SAML2/XML/md/EntityDescriptorTest.php index 28ab9854f..c292fe1b0 100644 --- a/tests/SAML2/XML/md/EntityDescriptorTest.php +++ b/tests/SAML2/XML/md/EntityDescriptorTest.php @@ -70,8 +70,6 @@ final class EntityDescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = EntityDescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/ExtensionsTest.php b/tests/SAML2/XML/md/ExtensionsTest.php index 9c07fcbc0..1c661be94 100644 --- a/tests/SAML2/XML/md/ExtensionsTest.php +++ b/tests/SAML2/XML/md/ExtensionsTest.php @@ -55,8 +55,6 @@ final class ExtensionsTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = Extensions::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/GivenNameTest.php b/tests/SAML2/XML/md/GivenNameTest.php index fa8fe6b43..7a6468165 100644 --- a/tests/SAML2/XML/md/GivenNameTest.php +++ b/tests/SAML2/XML/md/GivenNameTest.php @@ -34,8 +34,6 @@ final class GivenNameTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = GivenName::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/IDPSSODescriptorTest.php b/tests/SAML2/XML/md/IDPSSODescriptorTest.php index 2b8774320..b009c066c 100644 --- a/tests/SAML2/XML/md/IDPSSODescriptorTest.php +++ b/tests/SAML2/XML/md/IDPSSODescriptorTest.php @@ -60,8 +60,6 @@ final class IDPSSODescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = IDPSSODescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/KeyDescriptorTest.php b/tests/SAML2/XML/md/KeyDescriptorTest.php index 15fc2da6a..a0c629b40 100644 --- a/tests/SAML2/XML/md/KeyDescriptorTest.php +++ b/tests/SAML2/XML/md/KeyDescriptorTest.php @@ -38,8 +38,6 @@ final class KeyDescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = KeyDescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/NameIDFormatTest.php b/tests/SAML2/XML/md/NameIDFormatTest.php index 91d100277..9df3b5b21 100644 --- a/tests/SAML2/XML/md/NameIDFormatTest.php +++ b/tests/SAML2/XML/md/NameIDFormatTest.php @@ -35,8 +35,6 @@ final class NameIDFormatTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = NameIDFormat::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/NameIDMappingServiceTest.php b/tests/SAML2/XML/md/NameIDMappingServiceTest.php index a2293b998..349c5eb0a 100644 --- a/tests/SAML2/XML/md/NameIDMappingServiceTest.php +++ b/tests/SAML2/XML/md/NameIDMappingServiceTest.php @@ -36,8 +36,6 @@ final class NameIDMappingServiceTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = NameIDMappingService::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/OrganizationDisplayNameTest.php b/tests/SAML2/XML/md/OrganizationDisplayNameTest.php index 3c0cdb9fc..3dd660e89 100644 --- a/tests/SAML2/XML/md/OrganizationDisplayNameTest.php +++ b/tests/SAML2/XML/md/OrganizationDisplayNameTest.php @@ -38,8 +38,6 @@ final class OrganizationDisplayNameTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = OrganizationDisplayName::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/OrganizationNameTest.php b/tests/SAML2/XML/md/OrganizationNameTest.php index 7e332aeed..9a7de991a 100644 --- a/tests/SAML2/XML/md/OrganizationNameTest.php +++ b/tests/SAML2/XML/md/OrganizationNameTest.php @@ -38,8 +38,6 @@ final class OrganizationNameTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = OrganizationName::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/OrganizationTest.php b/tests/SAML2/XML/md/OrganizationTest.php index 7a7644e1a..3635dd7d3 100644 --- a/tests/SAML2/XML/md/OrganizationTest.php +++ b/tests/SAML2/XML/md/OrganizationTest.php @@ -47,8 +47,6 @@ final class OrganizationTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = Organization::class; self::$ext = DOMDocumentFactory::fromString( diff --git a/tests/SAML2/XML/md/OrganizationURLTest.php b/tests/SAML2/XML/md/OrganizationURLTest.php index 5ebd3f629..dcefc379d 100644 --- a/tests/SAML2/XML/md/OrganizationURLTest.php +++ b/tests/SAML2/XML/md/OrganizationURLTest.php @@ -41,8 +41,6 @@ final class OrganizationURLTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = OrganizationURL::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/PDPDescriptorTest.php b/tests/SAML2/XML/md/PDPDescriptorTest.php index fac6fe285..e6a8ce8d2 100644 --- a/tests/SAML2/XML/md/PDPDescriptorTest.php +++ b/tests/SAML2/XML/md/PDPDescriptorTest.php @@ -56,8 +56,6 @@ final class PDPDescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = PDPDescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/RequestedAttributeTest.php b/tests/SAML2/XML/md/RequestedAttributeTest.php index 4dad9726d..ab1bde7a0 100644 --- a/tests/SAML2/XML/md/RequestedAttributeTest.php +++ b/tests/SAML2/XML/md/RequestedAttributeTest.php @@ -37,8 +37,6 @@ final class RequestedAttributeTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = RequestedAttribute::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/SPSSODescriptorTest.php b/tests/SAML2/XML/md/SPSSODescriptorTest.php index 584989ff6..02ff6eaca 100644 --- a/tests/SAML2/XML/md/SPSSODescriptorTest.php +++ b/tests/SAML2/XML/md/SPSSODescriptorTest.php @@ -68,8 +68,6 @@ final class SPSSODescriptorTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = SPSSODescriptor::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/ServiceDescriptionTest.php b/tests/SAML2/XML/md/ServiceDescriptionTest.php index 1f1966599..9073457ea 100644 --- a/tests/SAML2/XML/md/ServiceDescriptionTest.php +++ b/tests/SAML2/XML/md/ServiceDescriptionTest.php @@ -38,8 +38,6 @@ final class ServiceDescriptionTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = ServiceDescription::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/ServiceNameTest.php b/tests/SAML2/XML/md/ServiceNameTest.php index 3147598e9..3c7d8543e 100644 --- a/tests/SAML2/XML/md/ServiceNameTest.php +++ b/tests/SAML2/XML/md/ServiceNameTest.php @@ -40,8 +40,6 @@ final class ServiceNameTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = ServiceName::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/SingleSignOnServiceTest.php b/tests/SAML2/XML/md/SingleSignOnServiceTest.php index 8769d912c..fb0270489 100644 --- a/tests/SAML2/XML/md/SingleSignOnServiceTest.php +++ b/tests/SAML2/XML/md/SingleSignOnServiceTest.php @@ -36,8 +36,6 @@ final class SingleSignOnServiceTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = SingleSignOnService::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/SurNameTest.php b/tests/SAML2/XML/md/SurNameTest.php index f791c90f8..7b643fec5 100644 --- a/tests/SAML2/XML/md/SurNameTest.php +++ b/tests/SAML2/XML/md/SurNameTest.php @@ -34,8 +34,6 @@ final class SurNameTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = SurName::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/md/TelephoneNumberTest.php b/tests/SAML2/XML/md/TelephoneNumberTest.php index 4c50fbf9d..1cad00914 100644 --- a/tests/SAML2/XML/md/TelephoneNumberTest.php +++ b/tests/SAML2/XML/md/TelephoneNumberTest.php @@ -33,8 +33,6 @@ final class TelephoneNumberTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-schema-metadata-2.0.xsd'; - self::$testedClass = TelephoneNumber::class; self::$arrayRepresentation = ['+1234567890']; diff --git a/tests/SAML2/XML/mdattr/EntityAttributesTest.php b/tests/SAML2/XML/mdattr/EntityAttributesTest.php index 6929d2698..04bf98a8a 100644 --- a/tests/SAML2/XML/mdattr/EntityAttributesTest.php +++ b/tests/SAML2/XML/mdattr/EntityAttributesTest.php @@ -48,8 +48,6 @@ final class EntityAttributesTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-metadata-attr.xsd'; - self::$testedClass = EntityAttributes::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdrpi/PublicationInfoTest.php b/tests/SAML2/XML/mdrpi/PublicationInfoTest.php index bd1614c61..849ff1303 100644 --- a/tests/SAML2/XML/mdrpi/PublicationInfoTest.php +++ b/tests/SAML2/XML/mdrpi/PublicationInfoTest.php @@ -40,8 +40,6 @@ final class PublicationInfoTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-metadata-rpi-v1.0.xsd'; - self::$testedClass = PublicationInfo::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdrpi/PublicationPathTest.php b/tests/SAML2/XML/mdrpi/PublicationPathTest.php index fe8730037..ed1bfef07 100644 --- a/tests/SAML2/XML/mdrpi/PublicationPathTest.php +++ b/tests/SAML2/XML/mdrpi/PublicationPathTest.php @@ -38,8 +38,6 @@ final class PublicationPathTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-metadata-rpi-v1.0.xsd'; - self::$testedClass = PublicationPath::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdrpi/PublicationTest.php b/tests/SAML2/XML/mdrpi/PublicationTest.php index 6b45143c1..08f6ef11b 100644 --- a/tests/SAML2/XML/mdrpi/PublicationTest.php +++ b/tests/SAML2/XML/mdrpi/PublicationTest.php @@ -39,8 +39,6 @@ final class PublicationTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-metadata-rpi-v1.0.xsd'; - self::$testedClass = Publication::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdrpi/RegistrationInfoTest.php b/tests/SAML2/XML/mdrpi/RegistrationInfoTest.php index 46678a5b9..498146382 100644 --- a/tests/SAML2/XML/mdrpi/RegistrationInfoTest.php +++ b/tests/SAML2/XML/mdrpi/RegistrationInfoTest.php @@ -40,8 +40,6 @@ final class RegistrationInfoTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-metadata-rpi-v1.0.xsd'; - self::$testedClass = RegistrationInfo::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdrpi/RegistrationPolicyTest.php b/tests/SAML2/XML/mdrpi/RegistrationPolicyTest.php index 53bed0a62..d0b8efdd9 100644 --- a/tests/SAML2/XML/mdrpi/RegistrationPolicyTest.php +++ b/tests/SAML2/XML/mdrpi/RegistrationPolicyTest.php @@ -14,7 +14,6 @@ use SimpleSAML\XML\DOMDocumentFactory; use SimpleSAML\XML\Exception\SchemaViolationException; use SimpleSAML\XML\TestUtils\ArrayizableElementTestTrait; -use SimpleSAML\XML\TestUtils\SchemaValidationTestTrait; use SimpleSAML\XML\TestUtils\SerializableElementTestTrait; use function dirname; @@ -33,7 +32,6 @@ final class RegistrationPolicyTest extends TestCase { use ArrayizableElementTestTrait; - use SchemaValidationTestTrait; use SerializableElementTestTrait; @@ -41,8 +39,6 @@ final class RegistrationPolicyTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-metadata-rpi-v1.0.xsd'; - self::$testedClass = RegistrationPolicy::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdrpi/UsagePolicyTest.php b/tests/SAML2/XML/mdrpi/UsagePolicyTest.php index 621b0ca82..424bb9ebe 100644 --- a/tests/SAML2/XML/mdrpi/UsagePolicyTest.php +++ b/tests/SAML2/XML/mdrpi/UsagePolicyTest.php @@ -14,7 +14,6 @@ use SimpleSAML\XML\DOMDocumentFactory; use SimpleSAML\XML\Exception\SchemaViolationException; use SimpleSAML\XML\TestUtils\ArrayizableElementTestTrait; -use SimpleSAML\XML\TestUtils\SchemaValidationTestTrait; use SimpleSAML\XML\TestUtils\SerializableElementTestTrait; use function dirname; @@ -33,7 +32,6 @@ final class UsagePolicyTest extends TestCase { use ArrayizableElementTestTrait; - use SchemaValidationTestTrait; use SerializableElementTestTrait; @@ -41,8 +39,6 @@ final class UsagePolicyTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/saml-metadata-rpi-v1.0.xsd'; - self::$testedClass = UsagePolicy::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/DescriptionTest.php b/tests/SAML2/XML/mdui/DescriptionTest.php index e683f41e0..1e956819a 100644 --- a/tests/SAML2/XML/mdui/DescriptionTest.php +++ b/tests/SAML2/XML/mdui/DescriptionTest.php @@ -12,7 +12,6 @@ use SimpleSAML\SAML2\XML\mdui\Description; use SimpleSAML\XML\DOMDocumentFactory; use SimpleSAML\XML\TestUtils\ArrayizableElementTestTrait; -use SimpleSAML\XML\TestUtils\SchemaValidationTestTrait; use SimpleSAML\XML\TestUtils\SerializableElementTestTrait; use function dirname; @@ -30,7 +29,6 @@ final class DescriptionTest extends TestCase { use ArrayizableElementTestTrait; - use SchemaValidationTestTrait; use SerializableElementTestTrait; @@ -38,8 +36,6 @@ final class DescriptionTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = Description::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/DiscoHintsTest.php b/tests/SAML2/XML/mdui/DiscoHintsTest.php index d221208ad..d3a453a87 100644 --- a/tests/SAML2/XML/mdui/DiscoHintsTest.php +++ b/tests/SAML2/XML/mdui/DiscoHintsTest.php @@ -42,8 +42,6 @@ final class DiscoHintsTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = DiscoHints::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/DisplayNameTest.php b/tests/SAML2/XML/mdui/DisplayNameTest.php index af7b3fb6b..7e7b5951a 100644 --- a/tests/SAML2/XML/mdui/DisplayNameTest.php +++ b/tests/SAML2/XML/mdui/DisplayNameTest.php @@ -12,7 +12,6 @@ use SimpleSAML\SAML2\XML\mdui\DisplayName; use SimpleSAML\XML\DOMDocumentFactory; use SimpleSAML\XML\TestUtils\ArrayizableElementTestTrait; -use SimpleSAML\XML\TestUtils\SchemaValidationTestTrait; use SimpleSAML\XML\TestUtils\SerializableElementTestTrait; use function dirname; @@ -30,7 +29,6 @@ final class DisplayNameTest extends TestCase { use ArrayizableElementTestTrait; - use SchemaValidationTestTrait; use SerializableElementTestTrait; @@ -38,8 +36,6 @@ final class DisplayNameTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = DisplayName::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/DomainHintTest.php b/tests/SAML2/XML/mdui/DomainHintTest.php index d8c98147f..54e239359 100644 --- a/tests/SAML2/XML/mdui/DomainHintTest.php +++ b/tests/SAML2/XML/mdui/DomainHintTest.php @@ -35,8 +35,6 @@ final class DomainHintTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = DomainHint::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/GeolocationHintTest.php b/tests/SAML2/XML/mdui/GeolocationHintTest.php index b02300fef..44ffb1e7c 100644 --- a/tests/SAML2/XML/mdui/GeolocationHintTest.php +++ b/tests/SAML2/XML/mdui/GeolocationHintTest.php @@ -34,8 +34,6 @@ final class GeolocationHintTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = GeolocationHint::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/IPHintTest.php b/tests/SAML2/XML/mdui/IPHintTest.php index 91d7968d7..4255bf39d 100644 --- a/tests/SAML2/XML/mdui/IPHintTest.php +++ b/tests/SAML2/XML/mdui/IPHintTest.php @@ -34,8 +34,6 @@ final class IPHintTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = IPHint::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/InformationURLTest.php b/tests/SAML2/XML/mdui/InformationURLTest.php index 6f4ba73f4..0daeec271 100644 --- a/tests/SAML2/XML/mdui/InformationURLTest.php +++ b/tests/SAML2/XML/mdui/InformationURLTest.php @@ -14,7 +14,6 @@ use SimpleSAML\XML\DOMDocumentFactory; use SimpleSAML\XML\Exception\SchemaViolationException; use SimpleSAML\XML\TestUtils\ArrayizableElementTestTrait; -use SimpleSAML\XML\TestUtils\SchemaValidationTestTrait; use SimpleSAML\XML\TestUtils\SerializableElementTestTrait; use function dirname; @@ -33,7 +32,6 @@ final class InformationURLTest extends TestCase { use ArrayizableElementTestTrait; - use SchemaValidationTestTrait; use SerializableElementTestTrait; @@ -41,8 +39,6 @@ final class InformationURLTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = InformationURL::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/KeywordsTest.php b/tests/SAML2/XML/mdui/KeywordsTest.php index bea4f508c..2aaab9c85 100644 --- a/tests/SAML2/XML/mdui/KeywordsTest.php +++ b/tests/SAML2/XML/mdui/KeywordsTest.php @@ -37,8 +37,6 @@ final class KeywordsTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = Keywords::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/LogoTest.php b/tests/SAML2/XML/mdui/LogoTest.php index fe2f24777..afea872b3 100644 --- a/tests/SAML2/XML/mdui/LogoTest.php +++ b/tests/SAML2/XML/mdui/LogoTest.php @@ -48,8 +48,6 @@ final class LogoTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = Logo::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/PrivacyStatementURLTest.php b/tests/SAML2/XML/mdui/PrivacyStatementURLTest.php index ccfe837f3..2f6943472 100644 --- a/tests/SAML2/XML/mdui/PrivacyStatementURLTest.php +++ b/tests/SAML2/XML/mdui/PrivacyStatementURLTest.php @@ -14,7 +14,6 @@ use SimpleSAML\XML\DOMDocumentFactory; use SimpleSAML\XML\Exception\SchemaViolationException; use SimpleSAML\XML\TestUtils\ArrayizableElementTestTrait; -use SimpleSAML\XML\TestUtils\SchemaValidationTestTrait; use SimpleSAML\XML\TestUtils\SerializableElementTestTrait; use function dirname; @@ -33,7 +32,6 @@ final class PrivacyStatementURLTest extends TestCase { use ArrayizableElementTestTrait; - use SchemaValidationTestTrait; use SerializableElementTestTrait; @@ -41,8 +39,6 @@ final class PrivacyStatementURLTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = PrivacyStatementURL::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/mdui/UIInfoTest.php b/tests/SAML2/XML/mdui/UIInfoTest.php index 0a6fc9110..f39a00320 100644 --- a/tests/SAML2/XML/mdui/UIInfoTest.php +++ b/tests/SAML2/XML/mdui/UIInfoTest.php @@ -47,8 +47,6 @@ final class UIInfoTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-ui-v1.0.xsd'; - self::$testedClass = UIInfo::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/saml/ConditionTest.php b/tests/SAML2/XML/saml/ConditionTest.php index 429eb87ea..3c4bd262b 100644 --- a/tests/SAML2/XML/saml/ConditionTest.php +++ b/tests/SAML2/XML/saml/ConditionTest.php @@ -51,7 +51,7 @@ public static function setUpBeforeClass(): void self::$schemaFile = dirname(__FILE__, 4) . '/resources/schemas/simplesamlphp.xsd'; - self::$testedClass = CustomCondition::class; + self::$testedClass = AbstractCondition::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( dirname(__FILE__, 4) . '/resources/xml/saml_Condition.xml', diff --git a/tests/SAML2/XML/saml/StatementTest.php b/tests/SAML2/XML/saml/StatementTest.php index 6742910b1..643d53a03 100644 --- a/tests/SAML2/XML/saml/StatementTest.php +++ b/tests/SAML2/XML/saml/StatementTest.php @@ -51,7 +51,7 @@ public static function setUpBeforeClass(): void self::$schemaFile = dirname(__FILE__, 4) . '/resources/schemas/simplesamlphp.xsd'; - self::$testedClass = CustomStatement::class; + self::$testedClass = AbstractStatement::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( dirname(__FILE__, 4) . '/resources/xml/saml_Statement.xml', diff --git a/tests/SAML2/XML/shibmd/KeyAuthorityTest.php b/tests/SAML2/XML/shibmd/KeyAuthorityTest.php index fc390f87d..817663bc3 100644 --- a/tests/SAML2/XML/shibmd/KeyAuthorityTest.php +++ b/tests/SAML2/XML/shibmd/KeyAuthorityTest.php @@ -38,8 +38,6 @@ final class KeyAuthorityTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-shibmd-v1.0.xsd'; - self::$testedClass = KeyAuthority::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile( diff --git a/tests/SAML2/XML/shibmd/ScopeTest.php b/tests/SAML2/XML/shibmd/ScopeTest.php index 04fc0fde1..84ef04f5d 100644 --- a/tests/SAML2/XML/shibmd/ScopeTest.php +++ b/tests/SAML2/XML/shibmd/ScopeTest.php @@ -35,8 +35,6 @@ final class ScopeTest extends TestCase */ public static function setUpBeforeClass(): void { - self::$schemaFile = dirname(__FILE__, 5) . '/resources/schemas/sstc-saml-metadata-shibmd-v1.0.xsd'; - self::$testedClass = Scope::class; self::$xmlRepresentation = DOMDocumentFactory::fromFile(