Xml Specification

XML Schema definition

<?xml version="1.0" encoding="utf-8"?>

<xs:schema xmlns:tns="urn:EsriDE.ProSuite.QA.QualitySpecifications-2.0" elementFormDefault="qualified"
           targetNamespace="urn:EsriDE.ProSuite.QA.QualitySpecifications-2.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="DataQuality" nillable="true" type="tns:XmlDataQualityDocument" />
  <xs:complexType name="XmlDataQualityDocument">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="QualitySpecifications" type="tns:ArrayOfXmlQualitySpecification" />
      <xs:element minOccurs="0" maxOccurs="1" name="QualityConditions" type="tns:ArrayOfXmlQualityCondition" />
      <xs:element minOccurs="0" maxOccurs="1" name="Categories" type="tns:ArrayOfXmlDataQualityCategory" />
      <xs:element minOccurs="0" maxOccurs="1" name="TestDescriptors" type="tns:ArrayOfXmlTestDescriptor" />
      <xs:element minOccurs="0" maxOccurs="1" name="Workspaces" type="tns:ArrayOfXmlWorkspace" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfXmlQualitySpecification">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="QualitySpecification" nillable="true"
                  type="tns:XmlQualitySpecification" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XmlQualitySpecification">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Notes" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Elements" type="tns:ArrayOfXmlQualitySpecificationElement" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="uuid" type="xs:string" />
    <xs:attribute default="-1" name="listOrder" type="xs:int" />
    <xs:attribute default="0" name="tileSize" type="xs:double" />
    <xs:attribute name="url" type="xs:string" />
    <xs:attribute default="false" name="hidden" type="xs:boolean" />
    <xs:attribute name="createdDate" type="xs:string" />
    <xs:attribute name="createdByUser" type="xs:string" />
    <xs:attribute name="lastChangedDate" type="xs:string" />
    <xs:attribute name="lastChangedByUser" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="ArrayOfXmlQualitySpecificationElement">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Element" nillable="true"
                  type="tns:XmlQualitySpecificationElement" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XmlQualitySpecificationElement">
    <xs:attribute name="qualityCondition" type="xs:string" />
    <xs:attribute default="Null" name="allowErrors" type="tns:Override" />
    <xs:attribute default="Null" name="stopOnError" type="tns:Override" />
  </xs:complexType>
  <xs:simpleType name="Override">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Null" />
      <xs:enumeration value="True" />
      <xs:enumeration value="False" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ArrayOfXmlQualityCondition">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="QualityCondition" nillable="true"
                  type="tns:XmlQualityCondition" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XmlQualityCondition">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Notes" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="Parameters" type="tns:ArrayOfChoice1" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="testDescriptor" type="xs:string" />
    <xs:attribute name="url" type="xs:string" />
    <xs:attribute name="uuid" type="xs:string" />
    <xs:attribute name="versionUuid" type="xs:string" />
    <xs:attribute default="Null" name="allowErrors" type="tns:Override" />
    <xs:attribute default="Null" name="stopOnError" type="tns:Override" />
    <xs:attribute default="false" name="neverFilterTableRowsUsingRelatedGeometry" type="xs:boolean" />
    <xs:attribute default="false" name="neverStoreRelatedGeometryForTableRowIssues" type="xs:boolean" />
    <xs:attribute name="createdDate" type="xs:string" />
    <xs:attribute name="createdByUser" type="xs:string" />
    <xs:attribute name="lastChangedDate" type="xs:string" />
    <xs:attribute name="lastChangedByUser" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="ArrayOfChoice1">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element minOccurs="1" maxOccurs="1" name="Scalar" nillable="true" type="tns:XmlScalarTestParameterValue" />
      <xs:element minOccurs="1" maxOccurs="1" name="Dataset" nillable="true" type="tns:XmlDatasetTestParameterValue" />
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="XmlScalarTestParameterValue">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:XmlTestParameterValue" />
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="XmlTestParameterValue">
    <xs:attribute name="parameter" type="xs:string" />
    <xs:attribute name="value" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="XmlDatasetTestParameterValue">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:XmlTestParameterValue">
        <xs:attribute name="where" type="xs:string" />
        <xs:attribute default="false" name="usedAsReferenceData" type="xs:boolean" />
        <xs:attribute name="workspace" type="xs:string" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ArrayOfXmlDataQualityCategory">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Category" nillable="true" type="tns:XmlDataQualityCategory" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XmlDataQualityCategory">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="SubCategories" type="tns:ArrayOfXmlDataQualityCategory" />
      <xs:element minOccurs="0" maxOccurs="1" name="QualitySpecifications" type="tns:ArrayOfXmlQualitySpecification" />
      <xs:element minOccurs="0" maxOccurs="1" name="QualityConditions" type="tns:ArrayOfXmlQualityCondition" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="abbreviation" type="xs:string" />
    <xs:attribute name="uuid" type="xs:string" />
    <xs:attribute default="0" name="listOrder" type="xs:int" />
    <xs:attribute name="defaultModelName" type="xs:string" />
    <xs:attribute default="true" name="canContainQualityConditions" type="xs:boolean" />
    <xs:attribute default="true" name="canContainQualitySpecifications" type="xs:boolean" />
    <xs:attribute default="true" name="canContainSubCategories" type="xs:boolean" />
    <xs:attribute name="createdDate" type="xs:string" />
    <xs:attribute name="createdByUser" type="xs:string" />
    <xs:attribute name="lastChangedDate" type="xs:string" />
    <xs:attribute name="lastChangedByUser" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="ArrayOfXmlTestDescriptor">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="TestDescriptor" nillable="true"
                  type="tns:XmlTestDescriptor" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XmlTestDescriptor">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
      <xs:element minOccurs="0" maxOccurs="1" name="TestClass" type="tns:XmlClassDescriptor" />
      <xs:element minOccurs="0" maxOccurs="1" name="TestFactory" type="tns:XmlClassDescriptor" />
      <xs:element minOccurs="0" maxOccurs="1" name="TestConfigurator" type="tns:XmlClassDescriptor" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute default="-1" name="executionPriority" type="xs:int" />
    <xs:attribute default="false" name="stopOnError" type="xs:boolean" />
    <xs:attribute default="false" name="allowErrors" type="xs:boolean" />
    <xs:attribute name="createdDate" type="xs:string" />
    <xs:attribute name="createdByUser" type="xs:string" />
    <xs:attribute name="lastChangedDate" type="xs:string" />
    <xs:attribute name="lastChangedByUser" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="XmlClassDescriptor">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string" />
    </xs:sequence>
    <xs:attribute name="type" type="xs:string" />
    <xs:attribute name="assembly" type="xs:string" />
    <xs:attribute default="-1" name="constructorIndex" type="xs:int" />
  </xs:complexType>
  <xs:complexType name="ArrayOfXmlWorkspace">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Workspace" nillable="true" type="tns:XmlWorkspace" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="XmlWorkspace">
    <xs:attribute name="id" type="xs:string" />
    <xs:attribute name="modelName" type="xs:string" />
    <xs:attribute name="factoryProgId" type="xs:string" />
    <xs:attribute name="connectionString" type="xs:string" />
    <xs:attribute name="catalogPath" type="xs:string" />
    <xs:attribute name="database" type="xs:string" />
    <xs:attribute name="schemaOwner" type="xs:string" />
  </xs:complexType>
</xs:schema>

XML Specification Sample

<?xml version="1.0" encoding="utf-8"?>
<DataQuality xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:EsriDE.ProSuite.QA.QualitySpecifications-2.0">

      <QualitySpecifications>
        <QualitySpecification name="Produktionsunterstützung" uuid="3DAC35C7-E573-42AB-A344-43A6CB60BD3D" listOrder="10" createdDate="2019-06-17T16:01:04" createdByUser="Tony" lastChangedDate="2020-06-22T14:22:28" lastChangedByUser="Silvia">
          <Elements>
            <Element qualityCondition="Maximallänge 50 m (Dienstzufahrt)" />
          </Elements>
        </QualitySpecification>
      </QualitySpecifications>
      <QualityConditions>
        <QualityCondition name="Maximallänge 50 m (Dienstzufahrt)" testDescriptor="MaxLength(0)" url="https://jira.sample-org.ch" uuid="76662BE1-7E64-40AD-89D0-356DC065464B" versionUuid="087A91AB-4BFC-4AEF-928E-194DFC8994F6" allowErrors="True" createdDate="2018-08-27T14:35:05" createdByUser="Alice" lastChangedDate="2020-02-24T09:50:46" lastChangedByUser="Simone">
          <Parameters>
            <Dataset parameter="featureClass" value="STRASSE" where="OBJEKTART = 6" workspace="SampleDatabase" />
            <Scalar parameter="limit" value="50" />
            <Scalar parameter="is3D" value="False" />
          </Parameters>
        </QualityCondition>      
      </QualityConditions>

  <TestDescriptors>
    <TestDescriptor name="MaxLength(0)" createdDate="2016-10-07T08:50:46" createdByUser="Alice" lastChangedDate="2017-10-30T16:13:15" lastChangedByUser="Bob">
      <Description>Findet alle Linien in 'featureClass' mit einer Laenge groesser als 'limit'</Description>
      <TestClass type="EsriDE.ProSuite.QA.Tests.QaMaxLength" assembly="EsriDE.ProSuite.QA.Tests" constructorIndex="0" />
    </TestDescriptor>

  </TestDescriptors>
  <Workspaces>
    <Workspace id="SampleDatabase" modelName="Sample" schemaOwner="Sample-Owner" />
  </Workspaces>
</DataQuality>