xqueryxsd-validationperformancepointshred

Does an XML schema or DTD exist for PerformancePoint's Xml Metadata?


I wrote several XQuery statements to shred existing KPI and Dashboard metadata but I would like to validate my queries by reviewing the corresponding Xml Schema or DTD if it exists. I searched online but could not find what i was looking for.

The metadata is stored in Performance Point's back end Sql Server database in the dbo.FCObjects table's SerializedXml column.


Solution

  • The PPS Authoring Service exposes a WSDL you can validate your XML against.

    You can grab this WSDL from the open specification documentation at:

    http://msdn.microsoft.com/en-us/library/dd930052(v=office.12).aspx

    Or, by hitting a SharePoint server using the following URL:

    http://server/_vti_bin/pps/PPSAuthoringService.asmx?wsdl
    

    In your example, a KPI is:

      <xs:complexType name="Kpi">
        <xs:complexContent mixed="false">
          <xs:extension base="tns:FirstClassElement">
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="1" name="Actuals" type="tns:ArrayOfKpiMeasure"/>
              <xs:element minOccurs="0" maxOccurs="1" name="Targets" type="tns:ArrayOfTarget"/>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
    

    And, a Dashboard is:

      <xs:complexType name="Dashboard">
        <xs:complexContent mixed="false">
          <xs:extension base="tns:FirstClassElement">
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="1" name="Pages" type="tns:ArrayOfDashboardElement"/>
            </xs:sequence>
            <xs:attribute name="TemplateType" type="xs:string"/>
            <xs:attribute name="DeploymentPath" type="xs:string"/>
            <xs:attribute name="SitePath" type="xs:string"/>
            <xs:attribute name="MasterPagePath" type="xs:string"/>
            <xs:attribute name="MasterPageDisplayName" type="xs:string"/>
            <xs:attribute name="PageList" type="xs:string"/>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
    

    If you need help validating an XML instance against a WSDL, take a look at Validate XML instance document against WSDL.