Contents
1. Introduction
In order to facilitate interoperability for the Evidence Exchange, a set of business rules is defined which must be applied in each transaction (Evidence Request, Evidence Reponse, Error Response). For each business rule, a corresponding schematron rule is defined that references the same rule ID. The business rules are sets of rules that guarantee the correct structure of the transactions and they clarify the content of instances by stating mandatory fields, fixed values (like code lists), the dependency between fields in the same object and dependency between different objects. The business rules are grouped into two main sections depending on their scope:
- Structure: Business rules that guarantee the correct structure of the message use the prefix "S" before the numer (e.g. S009):
- Check information constraints related to the use of different components such as namespaces, root elements, slots, data types including "multidimensional" checks crossing the barrier between the different XSD schemes (XSD-Binding and XSD-Restriction).
- Content: Business rules that ensure the correct content format of information objects use the prefix "C" before the numer (e.g. C012):
- Check cardinalities, identifiers, formats, fixed values, mandatory set of values on specific fields (code lists) and dependencies between fields;
Each business rule is associated with an error level (flag) that expresses a validation result when an XML instance is proven against the rules through schematron validation:
- note: a hint that an additional object is mandatory in some cases;
- warning: offering recommendations to improve the quality of the instance or regain full validity;
- fatal: the rule point to a major issue of consistency or data correctness.
The rule type classifies the principle goal of a business rule. The rule ID is used to identify the rule and can be used as an error code next to the rule description. Rule descriptions containing "MUST" correspond to an error level that is flagged as fatal, while "SHOULD" rules correspond to an error level that is flagged as a warning. "MAY" rules point to error level note. The Element and Location points to the correct information object that is affected by the rule.
2. Business rules associated to the Evidence Request
The tables below collect the set of business rules affecting the creation of Evidence Request instances.
2.1 Business rules that prove the correct structure of Evidence Requests
The rule ID references to the transaction "Evidence Request" (EDM-REQ) and indicates the proof of structure through the prefix "S" before the number.
RuleType | Rule ID | Element | Location | Rule | Flag |
RootElement | R-EDM-REQ-S001 | query:QueryRequest | query:QueryRequest | The root element of a query request document MUST be 'query:QueryRequest' | Fatal |
Namespace | R-EDM-REQ-S002 | query:QueryRequest | query:QueryRequest/@xmlns:query | The namespace of root element of a 'query:QueryRequest' must be 'urn:oasis:names:tc:ebxml-regrep:xsd:query:4.0' | Fatal |
RootAttribute | R-EDM-REQ-S003 | query:QueryRequest | query:QueryRequest/@id | The 'id' attribute of a 'query:QueryRequest' MUST be present. | Fatal |
RootAttribute | R-EDM-REQ-S004 | query:QueryRequest | query:QueryRequest/@id | The 'id' attribute of a 'QueryRequest' MUST be unique UUID (RFC 4122) for each request starting with prefix "urn:uuid:" | Fatal |
Slot | R-EDM-REQ-S005 | rim:Slot (SpecificationIdentifier) | query:QueryRequest/rim:Slot[@name='SpecificationIdentifier'] | The rim:Slot name="SpecificationIdentifier" MUST be present in the QueryRequest. | Fatal |
Slot | R-EDM-REQ-S006 | rim:Slot (IssueDateTime) | query:QueryRequest/rim:Slot[@name='IssueDateTime'] | The rim:Slot name="IssueDateTime" MUST be present in the QueryRequest. | Fatal |
Slot | R-EDM-REQ-S007 | rim:Slot (Procedure) | query:QueryRequest/rim:Slot[@name='Procedure'] | The rim:Slot name="Procedure" SHOULD be present in the QueryRequest. | Warning |
Slot | R-EDM-REQ-S008 | rim:Slot (PreviewLocation) | query:QueryRequest/rim:Slot[@name='PreviewLocation'] | The rim:Slot name="PreviewLocation" MAY be present in the QueryRequest. | Information |
Slot | R-EDM-REQ-S009 | rim:Slot (PossibilityForPreview) | query:QueryRequest/rim:Slot[@name='PossibilityForPreview'] | The rim:Slot name="PossibilityForPreview" MUST be present in the QueryRequest. | Fatal |
Slot | R-EDM-REQ-S010 | rim:Slot (ExplicitRequestGiven) | query:QueryRequest/rim:Slot[@name='ExplicitRequestGiven'] | The rim:Slot name="ExplicitRequestGiven" MUST be present in the QueryRequest. | Fatal |
Slot | R-EDM-REQ-S011 | rim:Slot (Requirement) | query:QueryRequest/rim:Slot[@name='Requirement'] | The rim:Slot name="Requirements" SHOULD be present in the QueryRequest. | Warning |
Slot | R-EDM-REQ-S012 | rim:Slot (EvidenceRequester) | query:QueryRequeste/rim:Slot[@name='EvidenceRequester'] | The rim:Slot name="EvidenceRequester" MUST be present in the QueryRequest. | Fatal |
Slot | R-EDM-REQ-S013 | rim:Slot (EvidenceProvider) | query:QueryRequest/rim:Slot[@name='EvidenceProvider'] | The rim:Slot name="EvidenceProvider" MUST be present in the QueryRequest. | Fatal |
Slot | R-EDM-REQ-S014 | rim:Slot (EvidenceProviderClassificationValues) | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassificationValues'] | The rim:Slot name="EvidenceProviderClassificationValues" MAY be present in the QueryRequest. | Information |
Slot | R-EDM-REQ-S015 | rim:Slot (EvidenceRequest) | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest'] | The rim:Slot name="EvidenceRequest" MUST be present in the Query. | Fatal |
Slot | R-EDM-REQ-S016 | rim:Slot (LegalPerson) | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson'] | A Query MUST contain either a rim:Slot name="LegalPerson" or a rim:Slot name="NaturalPerson" but NOT both. | Fatal |
Slot | R-EDM-REQ-S017 | rim:Slot (NaturalPerson) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson'] | A Query MUST contain either a rim:Slot name="LegalPerson" or a rim:Slot name="NaturalPerson" but NOT both. | Fatal |
Slot | R-EDM-REQ-S018 | rim:Slot (AuthorizedRepresentative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative'] | The rim:Slot name="AuthorizedRepresentative" MAY be present in the Query. | Note |
Slot | R-EDM-REQ-S019 | rim:Slot (QueryRequest) | query:QueryRequest | A 'query:QueryRequest' MUST not contain any other rim:Slots. | Fatal |
DataType | R-EDM-REQ-S020 | rim:SlotValue (SpecificationIdentifier) | query:QueryRequest/rim:Slot[@name='SpecificationIdentifier']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="SpecificationIdentifier" MUST be of "rim:StringValueType" | Fatal |
DataType | R-EDM-REQ-S021 | rim:SlotValue (IssueDateTime) | query:QueryRequest/rim:Slot[@name='IssueDateTime']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="IssueDateTime" MUST be of "rim:DateTimeValueType" | Fatal |
DataType | R-EDM-REQ-S022 | rim:SlotValue (Procedure) | query:QueryRequest/rim:Slot[@name='Procedure']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="Procedure" MUST be of "rim:InternationalStringValueType" | Fatal |
DataType | R-EDM-REQ-S023 | rim:SlotValue (PreviewLocation) | query:QueryRequest/rim:Slot[@name='PreviewLocation']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="PreviewLocation" MUST be of "rim:StringValueType" | Fatal |
DataType | R-EDM-REQ-S024 | rim:SlotValue (PossibilityForPreview) | query:QueryRequest/rim:Slot[@name='PossibilityForPreview']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="PossibilityForPreview" MUST be of "rim:BooleanValueType" | Fatal |
DataType | R-EDM-REQ-S025 | rim:SlotValue (ExplicitRequestGiven) | query:QueryRequest/rim:Slot[@name='ExplicitRequestGiven']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="ExplicitRequestGiven" MUST be of "rim:BooleanValueType" | Fatal |
DataType | R-EDM-REQ-S026 | rim:SlotValue (Requirement) | query:QueryRequest/rim:Slot[@name='Requirements']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="Requirements MUST be of "rim:CollectionValueType" | Fatal |
DataType | R-EDM-REQ-S027 | rim:Element (Requirement) | query:QueryRequest/rim:Slot[@name='Requirements']/ rim:SlotValue/rim:Element | The rim:Element of rim:SlotValue of rim:Slot name="Requirements" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-REQ-S028 | rim:SlotValue (EvidenceRequester) | query:QueryRequeste/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceRequester" MUST be of "rim:CollectionValueType" | Fatal |
DataType | R-EDM-REQ-S029 | rim:Element (EvidenceRequester) | query:QueryRequeste/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element | The rim:Element of rim:SlotValue of rim:Slot name="EvidenceRequester" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-REQ-S030 | rim:SlotValue (EvidenceProvider) | query:QueryRequest/rim:Slot[@name='EvidenceProvider']/rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceProvider" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-REQ-S031 | rim:SlotValue (EvidenceProviderClassification) | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceProviderClassification" MUST be of "rim:CollectionValueType" | Fatal |
DataType | R-EDM-REQ-S032 | rim:Element (EvidenceProviderClassification) | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue/rim:Element | The rim:Element of rim:SlotValue of rim:Slot name="EvidenceProviderClassification" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-REQ-S033 | rim:SlotValue (EvidenceRequest) | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceRequest" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-REQ-S034 | rim:SlotValue (LegalPerson) | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="LegalPerson" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-REQ-S035 | rim:SlotValue (NaturalPerson) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="NaturalPerson" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-REQ-S036 | rim:SlotValue (AuthorizedRepresentative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue | The rim:SlotValue of rim:Slot name="AuthorizedRepresentative" MUST be of "rim:AnyValueType" | Fatal |
XSD-Binding | R-EDM-REQ-S037 | sdg:Requirement (Requirement) | query:QueryRequest/rim:Slot[@name='Requirements']/ rim:SlotValue/rim:Element/sdg:Requirement | The 'query:QueryRequest/rim:Slot[@name='Requirements']/ rim:SlotValue/rim:Element' MUST use the 'sdg:Requirement' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Restriction | R-EDM-REQ-S038 | sdg:Requirement (Requirement) | query:QueryRequest/rim:Slot[@name='Requirements']/ rim:SlotValue/rim:Element/sdg:Requirement | A Requirement 'rim:Element/Requirement' MUST not contain any other elements than 'sdg:Identifier' and 'sdg:Name'. | Fatal |
XSD-Binding | R-EDM-REQ-S039 | sdg:Agent (EvidenceRequester) | query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent | The 'query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element' MUST use the 'sdg:Agent' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Restriction | R-EDM-REQ-S040 | sdg:Agent (EvidenceRequester) | query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent | An EvidenceRequester ''rim:Element/Agent' MUST not contain any other elements than 'sdg:Identifier' and 'sdg:Name', 'sdg:Address' and 'sdg:Classification'. | Fatal |
XSD-Binding | R-EDM-REQ-S041 | sdg:EvidenceProviderClassification (EvidenceProviderClassification) | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue/sdg:EvidenceProviderClassification | The 'query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue' MUST use the 'sdg:EvidenceProviderClassification' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Binding | R-EDM-REQ-S042 | sdg:Agent (EvidenceProvider) | query:QueryRequest/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/sdg:Agent | The 'query:QueryRequest/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue' MUST use the 'sdg:Agent' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Restriction | R-EDM-REQ-S043 | sdg:Agent (EvidenceProvider) | query:QueryRequest/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/sdg:Agent | An EvidenceProvider 'rim:SlotValue/Agent' MUST not contain any other elements than 'sdg:Identifier' and 'sdg:Name'. | Fatal |
XSD-Binding | R-EDM-REQ-S044 | sdg:DataServiceEvidenceType (EvidenceRequest) | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType | The 'query:QueryRequest/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue' MUST use the 'sdg:DataServiceEvidenceType' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Restriction | R-EDM-REQ-S045 | sdg:DataServiceEvidenceType (EvidenceRequest) | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType | An EvidenceRequest 'rim:SlotValue/DataServiceEvidenceType' MUST not contain any other elements than 'sdg:Identifier', 'sdg:EvidenceTypeClassification', 'sdg:Title', 'sdg:Description' and 'sdg:DistributedAs' | Fatal |
XSD-Binding | R-EDM-REQ-S046 | sdg:Person (NaturalPerson) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person | The 'query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue' MUST use the 'sdg:Person' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Binding | R-EDM-REQ-S047 | sdg:LegalPerson (LegalPerson) | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson | The 'query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue' MUST use the 'sdg:LegalPerson' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Binding | R-EDM-REQ-S048 | sdg:Person (AuthorizedRepresentative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person | The 'query:QueryRequest/query:Query/ rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue' MUST use the 'sdg:Person' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
2.2 Business rules that prove the correct use of information objects in Evidence Requests
The rule ID references to the transaction "Evidence Request" (EDM-REQ) and indicates the proof of structure through the prefix "C" before the number.
Rule Type | Rules ID | Element | Location | Rule | Flag |
Identifier | R-EDM-REQ-C001 | rim:Value (SpecificationIdentifier) | query:QueryRequest/rim:Slot[@name='SpecificationIdentifier']/ rim:SlotValue/rim:Value | The 'rim:Value' of the 'SpecificationIdentifier' MUST be the fixed value "oots-edm:v1.0". | Fatal |
Format | R-EDM-REQ-C002 | rim:Value (IssueDateTime) | query:QueryRequest/rim:Slot[@name='IssueDateTime']/ rim:SlotValue/rim:Value | The 'rim:Value' of 'IssueDateTime' MUST be according to xsd:dateTime. | Fatal |
CodeList | R-EDM-REQ-C003 | rim:Value (Procedure) | query:QueryRequest/rim:Slot[@name='Procedure']/ rim:SlotValue/rim:Value/rim:LocalizedString/@value | The 'value' attribute of 'Procedure' MUST be part of the code list 'Procedures' | Fatal |
CodeList | R-EDM-REQ-C004 | rim:Value (Procedure) | query:QueryRequest/rim:Slot[@name='Procedure']/ rim:SlotValue/rim:Value/rim:LocalizedString/@xml:lang | The 'language' attribute of 'Procedure' MUST be specified using the code list 'LanguageCode' (ISO 639-1 two-letter code). Default value "en" | Fatal |
Identifier | R-EDM-REQ-C005 | rim:Value (PreviewLocation) | query:QueryRequest/rim:Slot[@name='PreviewLocation']/ rim:SlotValue/rim:Value | The 'rim:Value' of a 'PreviewLocation' MUST be a URI starting with 'https://'. | Fatal |
CodeList | R-EDM-REQ-C006 | rim:Value (PossibilityForPreview) | query:QueryRequest/rim:Slot[@name='PossibilityForPreview']/ rim:SlotValue/rim:Value | The 'rim:Value' of 'PossibilityForPreview' MUST be according to xs:boolean. | Fatal |
CodeList | R-EDM-REQ-C007 | rim:Value (ExplicitRequestGiven) | query:QueryRequest/rim:Slot[@name='ExplicitRequestGiven']/ rim:SlotValue/rim:Value | The 'rim:Value' of 'ExplicitRequestGiven' MUST be xs:boolean. | Fatal |
Identifier | R-EDM-REQ-C008 | sdg:Requirement | query:QueryRequest/rim:Slot[@name='Requirement']/ rim:SlotValue/rim:Element/sdg:Requirement/sdg:Identifier | The value of 'Identifier' of a 'Requirement' MUST be a unique UUID (RFC 4122) listed in the EvidenceBroker and use the prefix ''https://sr.oots.tech.europa.eu/requirements/[UUID]'' pointing to the Semantic Repository. | Fatal |
CodeList | R-EDM-REQ-C009 | sdg:Requirement | query:QueryRequest/rim:Slot[@name='Requirement']/ rim:SlotValue/rim:Element/sdg:Requirement/sdg:Name/@lang | The value of 'lang' attribute MUST be part of the code list 'LanguageCode' (ISO 639-1 two-letter code). | Fatal |
Cardinality | R-EDM-REQ-C010 | sdg:Requirement | query:QueryRequest/rim:Slot[@name='Requirement']/ rim:SlotValue/rim:Element/sdg:Requirement/sdg:Name/@lang | The value of 'lang' attribute MUST be be provided. Default value: 'en'. | Fatal |
Cardinality | R-EDM-REQ-C011 | sdg:Agent (EvidenceRequester) | query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
CodeList | R-EDM-REQ-C012 | sdg:Agent (EvidenceRequester) | query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Identifier/@schemeID | The value of the 'schemeID' attribute of the 'Identifier' MUST be part of the code list 'EAS' (Electronic Address Scheme ) and use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]' | Fatal |
Cardinality | R-EDM-REQ-C013 | sdg:Agent (EvidenceRequester) | query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Classification | The value for 'Agent/Classification' MUST be provided. | Fatal |
CodeList | R-EDM-REQ-C014 | sdg:Agent (EvidenceRequester) | query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Classification | The value MUST be part of the code list 'AgentClassification'. Default value: ER (Evidence Requester). If the code 'IP' (Intermediary Platform) is present there must be another 'sdg:Agent' Element containing the code 'ER'. The codes 'EP' and 'ERRP' shall not be used by this transaction. | Fatal |
CodeList | R-EDM-REQ-C015 | sdg:Address (EvidenceRequester) | query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Address/sdg:AdminUnitLevel1 | The value of the 'AdminUnitLevel1' MUST be coded using the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes). | Fatal |
CodeList | R-EDM-REQ-C016 | sdg:Address (EvidenceRequester) | query:QueryRequest/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Address/sdg:AdminUnitLevel2 | The value of the 'AdminUnitLevel2' MUST be coded using the code list 'NUTS' (Nomenclature of Territorial Units for Statistics). | Fatal |
Cardinality | R-EDM-REQ-C017 | sdg:Agent (EvidenceProvider) | query:QueryRequest/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/sdg:Agent/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
CodeList | R-EDM-REQ-C018 | sdg:Agent (EvidenceProvider) | query:QueryRequest/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/sdg:Agent/sdg:Identifier/@schemeID | The value of the 'schemeID' attribute of the 'Identifier' MUST be part of the code list 'EAS' (Electronic Address Scheme ) and use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]'. | Fatal |
Identifier | R-EDM-REQ-C019 | sdg:EvidenceProviderClassification | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue/rim:Element/sdg:EvidenceProviderClassification/sdg:Identifier | The value of 'Identifier' of MUST be unique UUID (RFC 4122). | Fatal |
Cardinality | R-EDM-REQ-C020 | sdg:EvidenceProviderClassification | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue/rim:Element/sdg:EvidenceProviderClassification/sdg:Type | The value for 'Type' MUST be provided. | Fatal |
CodeList | R-EDM-REQ-C021 | sdg:EvidenceProviderClassification | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue/rim:Element/sdg:EvidenceProviderClassification/sdg:Description/@lang | The value of 'lang' attribute MUST be part of the code list 'LanguageCode' (ISO 639-1 two-letter code). | Fatal |
Cardinality | R-EDM-REQ-C022 | sdg:EvidenceProviderClassification | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue/rim:Element/sdg:EvidenceProviderClassification/sdg:Description/@lang | The value of 'lang' attribute MUST be be provided. Default value: 'en'. | Fatal |
Cardinality | R-EDM-REQ-C023 | sdg:EvidenceProviderClassification | query:QueryRequest/rim:Slot[@name='EvidenceProviderClassification']/ rim:SlotValue/rim:Element/sdg:EvidenceProviderClassification/sdg:SupportedValue | A value for 'SupportedValue' MUST be provided. | Fatal |
FixedValue | R-EDM-REQ-C024 | query:ResponseOption | query:QueryRequest/query:ResponseOption/@returnType | The 'returnType' attribute of 'ResponseOption' MUST be the fixed value "LeafClassWithRepositoryItem". | Fatal |
FixedValue | R-EDM-REQ-C025 | query:Query | query:QueryRequest/query:Query/@queryDefinition | The 'queryDefinition' attribute of 'Query' MUST be the fixed value "DocumentQuery". | Fatal |
Identifier | R-EDM-REQ-C026 | sdg:DataServiceEvidenceType | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:Identifier | The value of 'Identifier' of an 'DataServiceEvidenceType' MUST be unique UUID (RFC 4122) retrieved from the Data Service Directory. | Fatal |
CodeList | R-EDM-REQ-C027 | sdg:DataServiceEvidenceType | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:EvidenceTypeClassification | The value of 'EvidenceTypeClassification' of a 'DataServiceEvidenceType' MUST be a UUID retrieved from the Evidence Broker and inlude a code of the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes) using the prefix and scheme ''https://sr.oots.tech.europa.eu/evidencetypeclassifications/[CountryIdentificationCode]/[UUID]'' pointing to the Semantic Repository. | Fatal |
CodeList | R-EDM-REQ-C028 | sdg:DataServiceEvidenceType | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:Title/@lang | The value of 'lang' attribute MUST be part of the code list 'LanguageCode' (ISO 639-1 two-letter code). | Fatal |
Cardinality | R-EDM-REQ-C029 | sdg:DataServiceEvidenceType | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:Title/@lang | The value of 'lang' attribute MUST be be provided. Default value: 'en'. | Fatal |
CodeList | R-EDM-REQ-C030 | sdg:DataServiceEvidenceType | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:Description/@lang | The value of 'lang' attribute MUST be part of the code list 'LanguageCode' (ISO 639-1 two-letter code). | Fatal |
Cardinality | R-EDM-REQ-C031 | sdg:DataServiceEvidenceType | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:Description/@lang | The value of 'lang' attribute MUST be be provided. Default value: 'en'. | Fatal |
Cardinality | R-EDM-REQ-C032 | sdg:DistributedAs | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:DistributedAs | The Element 'DistributedAs' must occur not more than once (maxOccurs="1)' in the EvidenceRequest. | Fatal |
CodeList | R-EDM-REQ-C033 | sdg:DistributedAs | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:DistributedAs/sdg:Format | The value of 'Format' of the requested distribution MUST be be part of the code list 'OOTSMediaTypes'. | Fatal |
Identifier | R-EDM-REQ-C034 | sdg:DistributedAs | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:DistributedAs/sdg:ConformsTo | The value of 'ConformsTo' of the requested distribution MUST be a persistent URL with a link to a "DataModelScheme" of the Evidence Type retrieved by the DSD and described in the Semantic Repository which uses the prefix "https://sr.oots.tech.europa.eu/distributions/[DataModelScheme]". | Fatal |
Identifier | R-EDM-REQ-C035 | sdg:DistributedAs | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:DistributedAs/sdg:Transformation | The value of 'Transformation' of the requested distribution MUST be a persistent URL with link to a "DataModelScheme" and "Subset" of the EvidenceType retrieved from the Data Service Directory, desribed in the Semantic Repository which uses the prefix "https://sr.oots.tech.europa.eu/distributions/[DataModelScheme]/[Subset]". | Fatal |
Cardinality | R-EDM-REQ-C036 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:LevelOfAssurance | The Element 'LevelOfAssurance' must be provided (minOccurs="1)' in the EvidenceRequest when rim:Slot[@name='NaturalPerson'] is used. | Fatal |
CodeLIst | R-EDM-REQ-C037 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:LevelOfAssurance | The value of 'LevelOfAssurance' must be part of the code list 'LoA' (eIDAS Levels Of Assurance). | Fatal |
Cardinality | R-EDM-REQ-C038 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:Identifier | The value of a Person 'Identifier' SHOULD be provided. | Warning |
Format | R-EDM-REQ-C039 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:Identifier | The value of a Person 'Identifier' MUST have the format XX/YY/ZZZZZZZ where XX is the Nationality Code of the identifier and YY is the Nationality Code of the destination country and ZZZZZZZ is an undefined combination of characters which uniquely identifies the identity asserted in the country of origin. Example: ES/AT/02635542Y | Fatal |
CodeList | R-EDM-REQ-C040 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:Identifier | The value of Person 'Identifier' MUST have the format XX/YY/ZZZZZZZ where the values of XX and YY MUST be part of the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes). Example: ES/AT/02635542Y | Fatal |
Cardinality | R-EDM-REQ-C041 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
FixedValue | R-EDM-REQ-C042 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:Identifier/@schemeID | The 'schemeID' attribute of the 'Identifier' MUST have the fixed value 'eidas'. | Fatal |
Format | R-EDM-REQ-C043 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:DateOfBirth | The value of 'DateOfBirth' MUST use the following format YYYY + “-“ + MM + “-“ + DD (as defined for xsd:date) | Fatal |
CodeList | R-EDM-REQ-C044 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:Gender | The value of 'Gender' MUST be part of the code list 'Gender' (eIDAS Gender Code). | Fatal |
CodeList | R-EDM-REQ-C045 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:CurrentAddress/sdg:AdminUnitLevel1 | The value of the 'AdminUnitLevel1' SHOULD be part of the code list the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes). | Warning |
CodeList | R-EDM-REQ-C046 | sdg:Person (Natural Person) | query:QueryRequest/query:Query/rim:Slot[@name='NaturalPerson']/ rim:SlotValue/sdg:Person/sdg:CurrentAddress/sdg:AdminUnitLevel2 | The value of the 'AdminUnitLevel2' SHOULD be coded using the code list 'Nuts' (Nomenclature of Territorial Units for Statistics). | Warning |
Cardinality | R-EDM-REQ-C047 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:LevelOfAssurance | The Element 'LevelOfAssurance' must be provided (minOccurs="1)' in the EvidenceRequest when rim:Slot[@name='LegalPerson'] is used. | Fatal |
CodeList | R-EDM-REQ-C048 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:LevelOfAssurance | The value of 'LevelOfAssurance' must be part of the code list 'LoA' (eIDAS Levels Of Assurance). | Fatal |
Cardinality | R-EDM-REQ-C049 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:LegalPersonIdentifier | The value of a Legal Person 'LegalPersonIdentifier' SHOULD be provided. | Warning |
Format | R-EDM-REQ-C050 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:LegalPersonIdentifier | The value of a 'LegalPersonIdentifier' MUST have the format XX/YY/ZZZZZZZ where XX is the Nationality Code of the identifier and YY is the Nationality Code of the destination country and ZZZZZZZ is an undefined combination of characters which uniquely identifies the identity asserted in the country of origin. Example: ES/AT/02635542Y | Fatal |
CodeList | R-EDM-REQ-C051 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:LegalPersonIdentifier | The value of a 'LegalPersonIdentifier' MUST have the format XX/YY/ZZZZZZZ where the values of XX and YY MUST be part of the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes). Example: ES/AT/02635542Y | Fatal |
Cardinality | R-EDM-REQ-C052 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:LegalPersonIdentifier/@schemeID | The 'schemeID' attribute of 'LegalPersonIdentifier' MUST be present. | Fatal |
FixedValue | R-EDM-REQ-C053 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:LegalPersonIdentifier/@schemeID | The 'schemeID' attribute of the 'LegalPersonIdentifier' MUST have the fixed value 'eidas'. | Fatal |
Cardinality | R-EDM-REQ-C054 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
CodeList | R-EDM-REQ-C055 | sdg:LegalPerson | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:Identifier/@schemeID | The 'schemeID' attribute of the 'Identifier' MUST have be part of the code list 'IdentifierSchemes' (eIDAS Legal Person Identifier Schemes). | Fatal |
CodeList | R-EDM-REQ-C056 | sdg:RegisteredAddress | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:RegisteredAddress/sdg:AdminUnitLevel1 | The value of the 'AdminUnitLevel1' SHOULD be part of the code list the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes). | Warning |
CodeList | R-EDM-REQ-C057 | sdg:RegisteredAddress | query:QueryRequest/query:Query/rim:Slot[@name='LegalPerson']/ rim:SlotValue/sdg:LegalPerson/sdg:RegisteredAddress/sdg:AdminUnitLevel2 | The value of the 'AdminUnitLevel2' SHOULD be part of the code list 'Nuts' (Nomenclature of Territorial Units for Statistics). | Warning |
Cardinality | R-EDM-REQ-C058 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:LevelOfAssurance | The Element 'LevelOfAssurance' must be provided (minOccurs="1)' in the EvidenceRequest when rim:Slot[@name='AuthorizedRepresentative'] is used. | Fatal |
CodeLIst | R-EDM-REQ-C059 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:LevelOfAssurance | The value of 'LevelOfAssurance' must be part of the code list 'LoA' (eIDAS Levels Of Assurance). | Fatal |
Cardinality | R-EDM-REQ-C060 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:Identifier | The value of a Person 'Identifier' SHOULD be provided. | Warning |
Format | R-EDM-REQ-C061 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:Identifier | The value of a Person 'Identifier' MUST have the format XX/YY/ZZZZZZZ where XX is the Nationality Code of the identifier and YY is the Nationality Code of the destination country and ZZZZZZZ is an undefined combination of characters which uniquely identifies the identity asserted in the country of origin. Example: ES/AT/02635542Y | Fatal |
CodeList | R-EDM-REQ-C062 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:Identifier | The value of Person 'Identifier' MUST have the format XX/YY/ZZZZZZZ where the values of XX and YY MUST be part of the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes). Example: ES/AT/02635542Y | Fatal |
Cardinality | R-EDM-REQ-C063 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
FixedValue | R-EDM-REQ-C064 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:Identifier/@schemeID | The 'schemeID' attribute of the 'Identifier' MUST have the fixed value 'eidas'. | Fatal |
Format | R-EDM-REQ-C065 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:DateOfBirth | The value of 'DateOfBirth' MUST use the following format YYYY + “-“ + MM + “-“ + DD (as defined for xsd:date) | Fatal |
CodeList | R-EDM-REQ-C066 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:Gender | The value of 'Gender' MUST be part of the code list 'Gender' (eIDAS Gender Code). | Fatal |
CodeList | R-EDM-REQ-C067 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:CurrentAddress/sdg:AdminUnitLevel1 | The value of the 'AdminUnitLevel1' SHOULD be part of the code list the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes). | Warning |
CodeList | R-EDM-REQ-C068 | sdg:Person (Authorized Representative) | query:QueryRequest/query:Query/rim:Slot[@name='AuthorizedRepresentative']/ rim:SlotValue/sdg:Person/sdg:CurrentAddress/sdg:AdminUnitLevel2 | The value of the 'AdminUnitLevel2' SHOULD be part of the code list 'Nuts' (Nomenclature of Territorial Units for Statistics). | Warning |
CodeList | R-EDM-REQ-C069 | query:QueryRequest | query:QueryRequest/@lang | The value of 'lang' attribute MUST be part of the code list 'LanguageCode' (ISO 639-1 two-letter code). | Fatal |
Cardinality | R-EDM-REQ-C070 | sdg:DistributedAs | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:DistributedAs/sdg:ConformsTo | The value of 'sdg:ConformsTo' of the distribution MUST be present if the 'sdg:DistributedAs/sdg:Format' uses the codes 'application/xml' or 'application/json' of the codelist 'OOTSMediaTypes'. | Fatal |
Cardinality | R-EDM-REQ-C071 | sdg:DistributedAs | query:QueryRequest/query:Query/rim:Slot[@name='EvidenceRequest']/ rim:SlotValue/sdg:DataServiceEvidenceType/sdg:DistributedAs/sdg:ConformsTo | The value of 'sdg:ConformsTo' of the distribution MUST be present if the Element 'sdg:Transformation' of the distribution is present. | Fatal |
3. Business rules associated to the Evidence Response
The tables below collect the set of business rules affecting the creation of Evidence Response instances.
3.1 Business rules that prove the correct structure of Evidence Responses
The rule ID references to the transaction "Evidence Response" (EDM-RESP) and indicates the proof of structure through the prefix "S" before the number.
Rule Type | Rule ID | Element | Location | Rule | Flag |
RootElement | R-EDM-RESP-S001 | query:QueryResponse | query:QueryResponse | The root element of a query response document MUST be 'query:QueryResponse' | Fatal |
NameSpace | R-EDM-RESP-S002 | query:QueryResponse | query:QueryResponse/@xmlns:query | The namespace of root element of a 'query:QueryResponse' must be 'urn:oasis:names:tc:ebxml-regrep:xsd:query:4.0' | Fatal |
RootAttribute | R-EDM-RESP-S003 | query:QueryResponse | query:QueryResponse/@requestID | The 'requestID' attribute of a 'QueryResponse' MUST be present. | Fatal |
RootAttribute | R-EDM-RESP-S004 | query:QueryResponse | query:QueryResponse/@requestID | The 'requestID' attribute of a 'QueryResponse' MUST be unique UUID (RFC 4122) starting with prefix "urn:uuid:" and match the corresponding request. | Fatal |
RootAttribute | R-EDM-RESP-S005 | query:QueryResponse | query:QueryResponse/@status | The 'status' attribute of a 'QueryResponse' MUST be present. | Fatal |
RootAttribute | R-EDM-RESP-S006 | query:QueryResponse | query:QueryResponse/@status | The 'status attribute of a 'QueryResponse' MUST be encoded as "urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success" for successful responses or as "urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Unavailable" for responses that will be available at a later time . | Fatal |
Structure | R-EDM-RESP-S007 | query:QueryResponse | query:QueryResponse/rim:RegistryObjectList | An successful 'query:QueryResponse' includes a 'rim:RegistryObjectList' | Fatal |
Structure | R-EDM-RESP-S008 | query:QueryResponse | query:QueryResponse/@status | An successful 'query:QueryResponse' does not include a rs:Exception | Fatal |
Slot | R-EDM-RESP-S009 | rim:Slot (SpecificationIdentifier) | query:QueryResponse/rim:Slot[@name='SpecificationIdentifier'] | The rim:Slot name="SpecificationIdentifier" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-RESP-S010 | rim:Slot (EvidenceResponseIdentifier) | query:QueryResponse/rim:Slot[@name='EvidenceResponseIdentifier'] | The rim:Slot name="EvidenceResponseIdentifier" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-RESP-S011 | rim:Slot (IssueDateTime) | query:QueryResponse/rim:Slot[@name='IssueDateTime'] | The rim:Slot name="IssueDateTime" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-RESP-S012 | rim:Slot (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider'] | The rim:Slot name="EvidenceProvider" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-RESP-S013 | rim:Slot (EvidenceRequester) | query:QueryResponsee/rim:Slot[@name='EvidenceRequester'] | The rim:Slot name="EvidenceRequester" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-RESP-S014 | rim:Slot (ResponseAvailableDateTime) | query:QueryResponse/rim:Slot[@name='ResponseAvailableDateTime'] | The rim:Slot name="ResponseAvailableDateTime" MAY be present in the QueryResponse. | Note |
Slot | R-EDM-RESP-S015 | rim:Slot (EvidenceMetadata) | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata'] | The rim:Slot name="EvidenceMetadata" MUST be present in the RegistryObject. | Fatal |
Slot | R-EDM-RESP-S016 | query:QueryResponse | query:QueryResponse | A 'query:QueryResponse' MUST not contain any other rim:Slots. | Fatal |
DataType | R-EDM-RESP-S017 | rim:SlotValue (SpecificationIdentifier) | query:QueryResponse/rim:Slot[@name='SpecificationIdentifier']/rim:SlotValue | The rim:SlotValue of rim:Slot name="SpecificationIdentifier" MUST be of "rim:StringValueType" | Fatal |
DataType | R-EDM-RESP-S018 | rim:SlotValue (EvidenceResponseIdentifier) | query:QueryResponse/rim:Slot[@name='EvidenceResponseIdentifier']/rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceResponseIdentifier" MUST be of "rim:StringValueType" | Fatal |
DataType | R-EDM-RESP-S019 | rim:SlotValue (IssueDateTime) | query:QueryResponse/rim:Slot[@name='IssueDateTime']/rim:SlotValue | The rim:SlotValue of rim:Slot name="IssueDateTime" MUST be of "rim:DateTimeValueType" | Fatal |
DataType | R-EDM-RESP-S020 | rim:SlotValue (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceProvider" MUST be of "rim:CollectionValueType" | Fatal |
DataType | R-EDM-RESP-S021 | rim:Element (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/rim:Element | The rim:Element of rim:SlotValue of rim:Slot name="EvidenceProvider" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-RESP-S022 | rim:SlotValue (EvidenceRequester) | query:QueryResponsee/rim:Slot[@name='EvidenceRequester']/rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceRequester" MUST be of "rim:AnyValueType" | Fatal |
DataType | R-EDM-RESP-S023 | rim:SlotValue (ResponseAvailableDateTime) | query:QueryResponse/rim:Slot[@name='ResponseAvailableDateTime']/rim:SlotValue | The rim:SlotValue of rim:Slot name="ResponseAvailableDateTime" MUST be of "rim:DateTimeValueType" | Fatal |
DataType | R-EDM-RESP-S024 | rim:SlotValue (EvidenceMetadata) | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceMetadata MUST be of "rim:AnyValueType" | Fatal |
XSD-Binding | R-EDM-RESP-S025 | sdg:Agent (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/sdg:Agent | The 'query:QueryResponse/rim:Slot[@name='EvidenceProvider']/rim:SlotValue' MUST use the 'sdg:Agent' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Restriction | R-EDM-RESP-S026 | sdg:Agent (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/sdg:Agent | An EvidenceProvider 'rim:SlotValue/sdg:Agent' MUST not contain any other elements than 'sdg:Identifier' and 'sdg:Name', 'Address', "Classification". | Fatal |
XSD-Binding | R-EDM-RESP-S027 | sdg:Agent (EvidenceRequester) | query:QueryResponse/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent | The 'query:QueryResponse/rim:Slot[@name='EvidenceRequester']/rim:SlotValue' MUST 'sdg:Agent' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Restriction | R-EDM-RESP-S028 | sdg:Agent (EvidenceRequester) | query:QueryResponse/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/rim:Element/sdg:Agent | An EvidenceRequester ''rim:SlotValue/sdg:Agent' MUST not contain any other elements than 'sdg:Identifier' and 'sdg:Name'. | Fatal |
XSD-Binding | R-EDM-RESP-S029 | sdg:Evidence (EvidenceMetadata) | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence | The 'query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue' MUST use the 'sdg:Evidence' of the targetNamespace="http://data.europa.eu/p4s" | Fatal |
XSD-Restriction | R-EDM-RESP-S030 | sdg:IsConformantTo | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/sdg:IsConformantTo | The class 'IsConformantTo' of 'Evidence' MUST not contain any other elements than 'sdg:Identifier', 'sdg:Title' and 'sdg:Description'. | Fatal |
Cardinality | R-EDM-RESP-S031 | query:QueryResponse | query:QueryResponse/@requestID | The 'requestID' attribute of a 'QueryResponse' MUST be present. | Fatal |
Cardinality | R-EDM-RESP-S032 | query:QueryResponse | query:QueryResponse/@status | The 'status' attribute of a 'QueryResponse' MUST be present. | Fatal |
Cardinality | R-EDM-RESP-S033 | rim:RespositoryItemRef | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:RepositoryItemRef | The 'rim:RespositoryItemRef' of a 'rim:RegistryObject' MUST be present. | Fatal |
Cardinality | R-EDM-RESP-S034 | rim:RespositoryItemRef | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:RepositoryItemRef/@xlink:href | The 'xlink:href' attribute of 'RepositoryItemRef' MUST be present. | Fatal |
Cardinality | R-EDM-RESP-S035 | rim:RespositoryItemRef | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:RepositoryItemRef/@xlink:title | The 'xlink:title' attribute of 'RepositoryItemRef' MUST be present. | Fatal |
Cardinality | R-EDM-RESP-S036 | rim:RegistryObject | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/@id | The 'id' attribute of a 'RegistryObject' MUST be present. | Fatal |
Identifier | R-EDM-RESP-S037 | rim:RegistryObject | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/@id | The 'id' attribute of a 'RegistryObject' MUST be unique UUID (RFC 4122) starting with prefix "urn:uuid:". | Fatal |
3.2 Business rules that prove the correct use of information objects in Evidence Responses
The rule ID references to the transaction "Evidence Response" (EDM-RESP) and indicates the proof of structure through the prefix "C" before the number.
Rule Type | Rule ID | Element | Location | Rule | Flag |
Identifier | R-EDM-RESP-C002 | rim:Value (SpecificationIdentifier) | query:QueryResponse/rim:Slot[@name='SpecificationIdentifier']/ rim:SlotValue/rim:Value | The 'rim:Value' of the 'SpecificationIdentifier' MUST be the fixed value "oots-edm:v1.0". | Fatal |
Identifier | R-EDM-RESP-C003 | rim:Value (EvidenceResponseIdentifier) | query:QueryResponse/rim:Slot[@name='EvidenceResponseIdentifier']/ rim:SlotValue/rim:Value | The 'rim:Value' of the 'EvidenceResponseIdentifier' MUST be unique UUID (RFC 4122) for each response starting. | Fatal |
Format | R-EDM-RESP-C004 | rim:Value (IssueDateTime) | query:QueryResponse/rim:Slot[@name='IssueDateTime']/ rim:SlotValue/rim:Value | The 'rim:Value' of 'IssueDateTime' MUST be according to xsd:dateTime. | Fatal |
Format | R-EDM-RESP-C005 | rim:Value (ResponseAvailableDateTime) | query:QueryResponse/rim:Slot[@name='IssueDateTime']/ rim:SlotValue/rim:Value | The 'rim:Value' of 'ResponseAvailableDateTime' MUST be according to xsd:dateTime. | Fatal |
Cardinality | R-EDM-RESP-C006 | sdg:Agent (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
CodeList | R-EDM-RESP-C007 | sdg:Agent (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Identifier/@schemeID | The value of the 'schemeID' attribute of the 'Identifier' MUST be part of the code list 'EAS' (Electronic Address Scheme ) and use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]'. | Fatal |
CodeList | R-EDM-RESP-C008 | sdg:Agent (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Address/sdg:AdminUnitLevel1 | The value of the 'AdminUnitLevel1' MUST be part of the code list 'CountryIdentificationCode' (ISO 3166-1 alpha-2 codes). | Fatal |
CodeList | R-EDM-RESP-C009 | sdg:Agent (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Address/sdg:AdminUnitLevel2 | The value of the 'AdminUnitLevel2' MUST be coded using the code list 'Nuts' (Nomenclature of Territorial Units for Statistics). | Fatal |
Cardinality | R-EDM-RESP-C010 | sdg:Agent (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Classification | The value for 'Agent/Classification' MUST be provided. | Fatal |
CodeList | R-EDM-RESP-C011 | sdg:Agent (EvidenceProvider) | query:QueryResponse/rim:Slot[@name='EvidenceProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Classification | The value MUST be part of the code list 'AgentClassification'. Default value: EP (Evidence Provider). If the code 'IP' (Intermediary Platform) is present there must be another 'sdg:Agent' Element containing the code 'EP'. The code 'ER' and 'ERRP' shall not be used by this transaction. | Fatal |
Cardinality | R-EDM-RESP-C012 | sdg:Agent (EvidenceRequester) | query:QueryResponse/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/sdg:Agent/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
CodeList | R-EDM-RESP-C013 | sdg:Agent (EvidenceRequester) | query:QueryResponse/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/sdg:Agent/sdg:Identifier/@schemeID | The value of the 'schemeID' attribute of the 'Identifier' MUST be part of the code list 'EAS' (Electronic Address Scheme ) and use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]'. | Fatal |
Identifier | R-EDM-RESP-C015 | sdg:Evidence | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/sdg:Identifier | The value of 'Identifier' of an 'Evidence' MUST be unique UUID (RFC 4122). | Fatal |
Format | R-EDM-RESP-C016 | sdg:Evidence | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/sdg:IssuingDate | The value of 'IssuingDate' of an 'Evidence' MUST be be according to xsd:date. | Fatal |
Codelist | R-EDM-RESP-C017 | sdg:IsConformantTo | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsConformantTo/sdg:EvidenceTypeClassification | The value of 'EvidenceTypeClassification' of 'IsConformantTo' MUST be a UUID desribed in the Evidence Broker and inlude a code of the code list 'CountryIdentificationCode' (ISO 3166-1' alpha-2 codes) using the prefix and scheme 'https://sr.oots.tech.europa.eu/evidencetypeclassifications/[CountryIdentificationCode]/[UUID]' pointing to the Semantic Repository. | Fatal |
CodeList | R-EDM-RESP-C018 | sdg:IsConformantTo | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsConformantTo/sdg:Title/@lang | The value of 'lang' attribute MUST be part of the code list 'LanguageCode' (ISO 639-1 two-letter code). | Fatal |
Cardinality | R-EDM-RESP-C019 | sdg:IsConformantTo | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsConformantTo/sdg:Title/@lang | The value of 'lang' attribute MUST be be provided. Default value: 'en'. | Fatal |
CodeList | R-EDM-RESP-C020 | sdg:IsConformantTo | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsConformantTo/sdg:Description/@lang | The value of 'lang' attribute MUST be part of the code list 'LanguageCode' (ISO 639-1 two-letter code). | Fatal |
Cardinality | R-EDM-RESP-C021 | sdg:IsConformantTo | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsConformantTo/sdg:Description/@lang | The value of 'lang' attribute MUST be be provided. Default value: 'en'. | Fatal |
Identifier | R-EDM-RESP-C022 | sdg:Distribution | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:Distribution/sdg:ConformsTo | The value of 'ConformsTo' of the requested distribution MUST be a persistent URL with a link to a "DataModelScheme" of the Evidence Type described in the Semantic Repository which uses the prefix "https://sr.oots.tech.europa.eu/distributions/[DataModelScheme]". | Fatal |
CodeList | R-EDM-RESP-C023 | sdg:Distribution | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:Distribution/sdg:Format | The value of 'Format' of the requested distribution MUST be be part of the code list 'OOTSMediaTypes'. | Fatal |
CodeList | R-EDM-RESP-C026 | sdg:Distribution | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:Distribution/sdg:Language | The value of 'Language' MUST be part of the code list 'Language Code' (two-letter ISO 639-1). | Fatal |
Cardinality | R-EDM-RESP-C027 | sdg:IsAboutNaturalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutNaturalPerson/sdg:Identifier | The value of a Person 'Identifier' SHOULD be provided. | Warning |
Format | R-EDM-RESP-C028 | sdg:IsAboutNaturalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutNaturalPerson/sdg:Identifier | The value of a Person 'Identifier' MUST have the format XX/YY/ZZZZZZZ where XX is the Nationality Code of the identifier and YY is the Nationality Code of the destination country and ZZZZZZZ is an undefined combination of characters which uniquely identifies the identity asserted in the country of origin. Example: ES/AT/02635542Y | Fatal |
CodeList | R-EDM-RESP-C029 | sdg:IsAboutNaturalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutNaturalPerson/sdg:Identifier | The value of Person 'Identifier' MUST have the format XX/YY/ZZZZZZZ where the values of XX and YY MUST be part of the code list 'CountryIdentificationCode' (ISO 3166-1 alpha-2 codes). Example: ES/AT/02635542Y | Fatal |
Cardinality | R-EDM-RESP-C030 | sdg:IsAboutNaturalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutNaturalPerson/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
FixedValue | R-EDM-RESP-C031 | sdg:IsAboutNaturalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutNaturalPerson/sdg:Identifier/@schemeID | The 'schemeID' attribute of the 'Identifier' MUST have the fixed value 'eidas'. | Fatal |
Format | R-EDM-RESP-C032 | sdg:IsAboutNaturalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutNaturalPerson/sdg:DateOfBirth | The value of 'DateOfBirth' MUST use the following format YYYY + “-“ + MM + “-“ + DD (as defined for xsd:date) | Fatal |
Cardinality | R-EDM-RESP-C033 | sdg:IsAboutLegalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutLegalPerson/sdg:LegalIdentifier | The value of a Legal Person 'LegalPersonIdentifier' SHOULD be provided. | Fatal |
Format | R-EDM-RESP-C034 | sdg:IsAboutLegalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutLegalPerson/sdg:LegalIdentifier | The value of a 'LegalIdentifier' MUST have the format XX/YY/ZZZZZZZ where XX is the Nationality Code of the identifier and YY is the Nationality Code of the destination country and ZZZZZZZ is an undefined combination of characters which uniquely identifies the identity asserted in the country of origin. Example: ES/AT/02635542Y | Fatal |
CodeList | R-EDM-RESP-C035 | sdg:IsAboutLegalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutLegalPerson/sdg:LegalIdentifier | The value of a 'LegalIdentifier' MUST have the format XX/YY/ZZZZZZZ where the values of XX and YY MUST be part of the code list 'CountryIdentificationCode' (ISO 3166-1 alpha-2 codes). Example: ES/AT/02635542Y | Fatal |
Cardinality | R-EDM-RESP-C036 | sdg:IsAboutLegalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutLegalPerson/sdg:LegalIdentifier/@schemeID | The 'schemeID' attribute of 'LegalIdentifier' MUST be present. | Fatal |
FixedValue | R-EDM-RESP-C037 | sdg:IsAboutLegalPerson | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IsAboutLegalPerson/sdg:LegalIdentifier/@schemeID | The 'schemeID' attribute of the 'LegalIdentifier' MUST have the fixed value 'eidas'. | Fatal |
Cardinality | R-EDM-RESP-C038 | sdg:IssuingAuthority | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IssuingAuthority/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
CodeList | R-EDM-RESP-C039 | sdg:IssuingAuthority | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:IssuingAuthority/sdg:Identifier/@schemeID | The value of the 'schemeID' attribute of the 'Identifier' MUST be part of the code list 'EAS' (Electronic Address Scheme ) and use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]'. | Fatal |
Format | R-EDM-RESP-C040 | sdg:ValidityPeriod | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:ValidityPeriod/sdg:StartDate | The value of 'StartDate' of an 'ValidityPeriod' MUST be be according to xsd:dateTime. | Fatal |
Format | R-EDM-RESP-C041 | sdg:ValidityPeriod | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:ValidityPeriod/sdg:EndDate | The value of 'EndDate' of an 'ValidityPeriod' MUST be be according to xsd:dateTime. | Fatal |
Format | R-EDM-RESP-C042 | RepositoryItemRef | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:RepositoryItemRef/@xlink:href | The value of the attribute "xlink:href" of "rim:RepositoryItemRef" MUST follow the URI scheme cid and start with the prefix 'cid:……' | Fatal |
Identifier | R-EDM-RESP-C043 | sdg:DistributedAs | query:QueryResponse/rim:RegistryObjectList/rim:RegistryObject/ rim:Slot[@name='EvidenceMetadata']/rim:SlotValue/sdg:Evidence/ sdg:Distribution/sdg:Transformation | The value of 'Transformation' of the requested distribution MUST be a persistent URL with link to a "DataModelScheme" and "Subset" of the EvidenceType desribed in the Semantic Repository which uses the prefix "https://sr.oots.tech.europa.eu/distributions/[DataModelScheme]/[Subset]". | Fatal |
4. Business rules associated to the Error Response
The tables below collect the set of business rules affecting the creation of Error Response instances.
4.1 Business rules that prove the correct structure of Error Responses
The rule ID references to the transaction "EDM Error Response" (EDM-ERR) and indicates the proof of structure through the prefix "S" before the number.
Rule Type | Rule ID | Element | Location | Rule | Flag |
RootElement | R-EDM-ERR-S001 | query:QueryResponse | query:QueryResponse | The root element of a query response document MUST be 'query:QueryResponse' | Fatal |
NameSpace | R-EDM-ERR-S002 | query:QueryResponse | query:QueryResponse/@xmlns:query | The namespace of root element of a 'query:QueryResponse' must be 'urn:oasis:names:tc:ebxml-regrep:xsd:query:4.0' | Fatal |
RootAttribute | R-EDM-ERR-S003 | query:QueryResponse | query:QueryResponse/@requestID | The 'requestID' attribute of a 'QueryResponse' MUST be present. | Fatal |
RootAttribute | R-EDM-ERR-S004 | query:QueryResponse | query:QueryResponse/@requestID | The 'requestID' attribute of a 'QueryResponse' MUST be unique UUID (RFC 4122) starting with prefix "urn:uuid:" and match the corresponding request. | Fatal |
RootAttribute | R-EDM-ERR-S005 | query:QueryResponse | query:QueryResponse/@status | The 'status' attribute of a 'QueryResponse' MUST be present. | Fatal |
RootAttribute | R-EDM-ERR-S006 | query:QueryResponse | query:QueryResponse/@status | The 'status' attribute of an unsuccessfull 'query:QueryResponse' MUST be encoded as as 'urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure'. | Fatal |
Structure | R-EDM-ERR-S007 | query:QueryResponse | query:QueryResponse/@status | An unsuccessful 'query:QueryResponse' does not include a 'rim:RegistryObjectList' | Fatal |
Structure | R-EDM-ERR-S008 | rs:Exception | query:QueryResponse/rs:Exception | An unsuccessful 'query:QueryResponse' includes an Exception | Fatal |
Slot | R-EDM-ERR-S009 | rim:Slot (SpecificationIdentifier) | query:QueryResponse/rim:Slot[@name='SpecificationIdentifier'] | The rim:Slot name="SpecificationIdentifier" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-ERR-S010 | rim:Slot (EvidenceResponseIdentifier) | query:QueryResponse/rim:Slot[@name='EvidenceResponseIdentifier'] | The rim:Slot name="EvidenceResponseIdentifier" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-ERR-S011 | rim:Slot (ErrorProvider) | query:QueryResponse/rim:Slot[@name='ErrorProvider'] | The rim:Slot name="ErrorProvider" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-ERR-S012 | rim:Slot (EvidenceRequester) | query:QueryResponsee/rim:Slot[@name='EvidenceRequester'] | The rim:Slot name="EvidenceRequester" MUST be present in the QueryResponse. | Fatal |
Slot | R-EDM-ERR-S013 | rim:Slot (Timestamp) | query:QueryResponse/rs:Exception/rim:Slot[@name='Timestamp'] | The rim:Slot name="Timestamp" MUST be present in the rs:Exception. | Fatal |
Slot | R-EDM-ERR-S014 | rim:Slot (PreviewLocation) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewLocation'] | The rim:Slot name="PreviewLocation" MAY be present in the rs:Exception. | Note |
Slot | R-EDM-ERR-S015 | rim:Slot (PreviewDescription) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewDescription'] | The rim:Slot name="PreviewDescription" MAY be present in the rs:Exception. | Note |
Slot | R-EDM-ERR-S016 | rim:Slot (PreviewMethod) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewMethod'] | The rim:Slot name="PreviewMethod" MAY be present in the rs:Exception. | Note |
Slot | R-EDM-ERR-S017 | query:QueryResponse | query:QueryResponse | A 'query:QueryResponse' MUST not contain any other rim:Slots. | Fatal |
Datatype | R-EDM-ERR-S018 | rim:SlotValue (SpecificationIdentifier) | query:QueryResponse/rim:Slot[@name='SpecificationIdentifier']/rim:SlotValue | The rim:SlotValue of rim:Slot name="SpecificationIdentifier" MUST be of "rim:StringValueType" | Fatal |
Datatype | R-EDM-ERR-S019 | rim:SlotValue (EvidenceResponseIdentifier) | query:QueryResponse/rim:Slot[@name='EvidenceResponseIdentifier']/rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceResponseIdentifier" MUST be of "rim:StringValueType" | Fatal |
Datatype | R-EDM-ERR-S020 | rim:SlotValue (ErrorProvider) | query:QueryResponse/rim:Slot[@name='ErrorProvider']/rim:SlotValue | The rim:SlotValue of rim:Slot name="ErrorProvider" MUST be of "rim:CollectionValueType" | Fatal |
Datatype | R-EDM-ERR-S021 | rim:SlotValue (EvidenceRequester) | query:QueryResponsee/rim:Slot[@name='EvidenceRequester']/rim:SlotValue | The rim:SlotValue of rim:Slot name="EvidenceRequester" MUST be of "rim:AnyValueType" | Fatal |
Datatype | R-EDM-ERR-S022 | rim:SlotValue (Timestamp) | query:QueryResponse/rs:Exception/rim:Slot[@name='Timestamp']/rim:SlotValue | The rim:SlotValue of rim:Slot name="Timestamp" MUST be of "rim:DateTimeValueType" | Fatal |
Datatype | R-EDM-ERR-S023 | rim:SlotValue (PreviewLocation) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewLocation']/rim:SlotValue | The rim:SlotValue of rim:Slot name="PreviewLocation" MUST be of "rim:StringValueType" | Fatal |
Datatype | R-EDM-ERR-S024 | rim:SlotValue (PreviewDescription) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewDescription']/rim:SlotValue | The rim:SlotValue of rim:Slot name="PreviewDescription" MUST be of "rim:InternationalStringValueType" | Fatal |
Datatype | R-EDM-ERR-S025 | rim:SlotValue (PreviewMethod) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewMethod']/rim:SlotValue | The rim:SlotValue of rim:Slot name="PreviewMethod" MUST be of "rim:StringValueType" | Fatal |
4.2 Business rules that prove the correct use of information objects in Error Responses
The rule ID references to the transaction "EDM Error Response" (EDM-ERR) and indicates the proof of structure through the prefix "C" before the number.
Rule Type | Rule ID | Element | Location | Rule | Flag |
Identifier | R-EDM-ERR-C001 | rim:Value (SpecificationIdentifier) | query:QueryResponse/rim:Slot[@name='SpecificationIdentifier']/ rim:SlotValue/rim:Value | The 'rim:Value' of the 'SpecificationIdentifier' MUST be the fixed value "oots-edm:v1.0". | Fatal |
Identifier | R-EDM-ERR-C002 | rim:Value (EvidenceResponseIdentifier) | query:QueryResponse/rim:Slot[@name='EvidenceResponseIdentifier']/ rim:SlotValue/rim:Value | The 'rim:Value' of the 'EvidenceResponseIdentifier' MUST be unique UUID (RFC 4122) for each response. | Fatal |
Cardinality | R-EDM-ERR-C003 | sdg:Agent (ErrorProvider) | query:QueryResponse/rim:Slot[@name='ErrorProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
CodeList | R-EDM-ERR-C004 | sdg:Agent (ErrorProvider) | query:QueryResponse/rim:Slot[@name='ErrorProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Identifier/@schemeID | The value of the 'schemeID' attribute of the 'Identifier' MUST be part of the code list 'EAS' (Electronic Address Scheme ) and use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]'. | Fatal |
CodeList | R-EDM-ERR-C005 | sdg:Agent (ErrorProvider) | query:QueryResponse/rim:Slot[@name='ErrorProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Address/sdg:AdminUnitLevel1 | The value of the 'AdminUnitLevel1' MUST be part of the code list 'CountryIdentificationCode' (ISO 3166-1 alpha-2 codes). | Fatal |
CodeList | R-EDM-ERR-C006 | sdg:Agent (ErrorProvider) | query:QueryResponse/rim:Slot[@name='ErrorProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Address/sdg:AdminUnitLevel2 | The value of the 'AdminUnitLevel2' MUST be coded using the code list 'Nuts' (Nomenclature of Territorial Units for Statistics). | Fatal |
Cardinality | R-EDM-ERR-C007 | sdg:Agent (ErrorProvider) | query:QueryResponse/rim:Slot[@name='ErrorProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Classification | The value for 'Agent/Classification' MUST be provided. | Fatal |
CodeList | R-EDM-ERR-C008 | sdg:Agent (ErrorProvider) | query:QueryResponse/rim:Slot[@name='ErrorProvider']/ rim:SlotValue/rim:Element/sdg:Agent/sdg:Classification | The value MUST be part of the code list 'AgentClassification'. Default value: ERRP (Error Provider). The code 'ER' shall not be used by this transaction. | Fatal |
Cardinality | R-EDM-ERR-C009 | sdg:Agent (EvidenceRequester) | query:QueryResponse/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/sdg:Agent/sdg:Identifier/@schemeID | The 'schemeID' attribute of 'Identifier' MUST be present. | Fatal |
CodeList | R-EDM-ERR-C010 | sdg:Agent (EvidenceRequester) | query:QueryResponse/rim:Slot[@name='EvidenceRequester']/ rim:SlotValue/sdg:Agent/sdg:Identifier/@schemeID | The value of the 'schemeID' attribute of the 'Identifier' MUST be part of the code list 'EAS' (Electronic Address Scheme ) and use the prefix 'urn:cef.eu:names:identifier:EAS:[Code]'. | Fatal |
Cardinality | R-EDM-ERR-C011 | rs:Exception | query:QueryResponse/rs:Exception | The 'rs:Exception' class of a 'QueryResponse' MUST be present if 'status' attribute of a 'QueryResponse' is "urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Failure". | Fatal |
Cardinality | R-EDM-ERR-C012 | rs:Exception | query:QueryResponse/rs:Exception/@xsi:type | The 'xsi:type' attribute of a 'rs:Exception' MUST be present. | Fatal |
CodeList | R-EDM-ERR-C013 | rs:Exception | query:QueryResponse/rs:Exception/@xsi:type | The value of 'xsi:type' attribute of a 'rs:Exception' MUST be a 'type' provided by code list 'EDMErrorCodes' (Exchange Data Model Error Response Codes). | Fatal |
Cardinality | R-EDM-ERR-C014 | rs:Exception | query:QueryResponse/rs:Exception/@severity | The 'severity' attribute of a 'rs:Exception' MUST be present. It must be part of the code list 'ErrorSeverity' (Error Severity). The code 'urn:sr.oots.tech.europa.eu:codes:ErrorSeverity:DSDErrorResponse:AdditionalInput' shall not be used by this transaction. | Fatal |
CodeList | R-EDM-ERR-C015 | rs:Exception | query:QueryResponse/rs:Exception/@severity | The value of 'severity' attribute of a 'rs:Exception' MUST be 'urn:oasis:names:tc:ebxml-regrep:ErrorSeverityType:Error' if the rs:Exception xsi:type='rs:AuthorizationExceptionType' (@code 'EDM:ERR:0001') is NOT used. | Fatal |
Cardinality | R-EDM-ERR-C016 | rs:Exception | query:QueryResponse/rs:Exception/@message | The 'message' attribute of a 'rs:Exception' MUST be present. | Fatal |
CodeList | R-EDM-ERR-C017 | rs:Exception | query:QueryResponse/rs:Exception/@code | The value of 'code' attribute of a 'rs:Exception' MUST be a 'code' matching the 'type' provided by code list 'EDMErrorCodes' (Exchange Data Model Error Response Codes). | Fatal |
Format | R-EDM-ERR-C018 | rim:Value (Timestamp) | query:QueryResponse/rs:Exception/rim:Slot[@name='Timestamp']/ rim:SlotValue/rim:Value | The 'rim:Value' of 'Timestamp' MUST be according to xsd:dateTime. | Fatal |
Identifier | R-EDM-ERR-C019 | rim:Value (PreviewLocation) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewLocation']/ rim:SlotValue/rim:Value | The 'rim:Value' of a 'PreviewLocation' MUST be a URI starting with 'https://'. | Fatal |
CodeList | R-EDM-ERR-C020 | rim:Value (PreviewDescription) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewDescription']/ rim:SlotValue/rim:Value | The 'language' attribute of 'PreviewDescription' MUST be specified using the code list 'LanguageCode' (ISO 639-1 two-letter code). | Fatal |
CodeList | R-EDM-ERR-C021 | rim:Value (PreviewMethod) | query:QueryResponse/rs:Exception/rim:Slot[@name='PreviewMethod']/ rim:SlotValue/rim:Value | The 'rim:Value' of a 'PreviewMethod' MUST be either the HTTP verb 'GET' or 'POST'. | Fatal |
Codelist | R-EDM-ERR-C022 | rs:Exception | query:QueryResponse/rs:Exception/@severity | If a 'rim:Slot[@name='PreviewLocation']' is provided, the 'rs:Exception' MUST be 'urn:sr.oots.tech.europa.eu:codes:ErrorSeverity:EDMErrorResponse:PreviewRequired' and use the rs:Exception xsi:type='rs:AuthorizationExceptionType' (@code 'EDM:ERR:0001'). | Fatal |