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.
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.