PMML通过XML表示模型,模型的结构以XML Schema描述。在一个PMML文档中,可以包含一个或多个模型。PMML文档结构如下:
<?xml version="1.0"?>
<PMML version="4.3"
xmlns="http://www.dmg.org/PMML-4_3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Header copyright="Example.com"/>
<DataDictionary> ... </DataDictionary>
... a model ...
</PMML>
PMML Schema的namespace定义在
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.dmg.org/PMML-4_3"
xmlns="http://www.dmg.org/PMML-4_3"
elementFormDefault="unqualified">
PMML文档的root元素必须包含PMML类型
<xs:element name="PMML">
<xs:complexType>
<xs:sequence>
<xs:element ref="Header"/>
<xs:element ref="MiningBuildTask" minOccurs="0"/>
<xs:element ref="DataDictionary"/>
<xs:element ref="TransformationDictionary" minOccurs="0"/>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="MODEL-ELEMENT"/>
</xs:sequence>
<xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="version" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:group name="MODEL-ELEMENT">
<xs:choice>
<xs:element ref="AssociationModel"/>
<xs:element ref="BayesianNetworkModel"/>
<xs:element ref="BaselineModel"/>
<xs:element ref="ClusteringModel"/>
<xs:element ref="GaussianProcessModel"/>
<xs:element ref="GeneralRegressionModel"/>
<xs:element ref="MiningModel"/>
<xs:element ref="NaiveBayesModel"/>
<xs:element ref="NearestNeighborModel"/>
<xs:element ref="NeuralNetwork"/>
<xs:element ref="RegressionModel"/>
<xs:element ref="RuleSetModel"/>
<xs:element ref="SequenceModel"/>
<xs:element ref="Scorecard"/>
<xs:element ref="SupportVectorMachineModel"/>
<xs:element ref="TextModel"/>
<xs:element ref="TimeSeriesModel"/>
<xs:element ref="TreeModel"/>
</xs:choice>
</xs:group>