<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT model (user, date, schema, classification)>
<!ELEMENT user (#PCDATA)>
<!ELEMENT date (#PCDATA)>
<!ELEMENT schema (table*)>
<!ELEMENT table (tableName, attributeList, relationshipList)>
<!ELEMENT attributeList (attribute*)>
<!ELEMENT relationshipList (relationship*)>
<!ELEMENT tableName (#PCDATA)>
<!ELEMENT attribute (attributeName, attributeType, primaryKey, tableName)>
<!ELEMENT attributeName (#PCDATA)>
<!ELEMENT attributeType (#PCDATA)>
<!ELEMENT primaryKey (#PCDATA)>
<!ELEMENT relationship (destinationTable, destinationAttribute, sourceTable, sourceAttribute)>
<!ELEMENT destinationTable (#PCDATA)>
<!ELEMENT destinationAttribute (#PCDATA)>
<!ELEMENT sourceTable (#PCDATA)>
<!ELEMENT sourceAttribute (#PCDATA)>
<!ELEMENT classification (targetAttribute, firstOrderFeaturesList, distinctStructuralFeaturesList)>
<!ELEMENT targetAttribute (attribute, valuesList)>
<!ELEMENT valuesList (targetValue*)>
<!ELEMENT targetValue (#PCDATA)>
<!ATTLIST targetValue
	frequency CDATA #REQUIRED
	counterIstances CDATA #REQUIRED
	class CDATA #REQUIRED
>
<!ELEMENT firstOrderFeaturesList (firstOrderFeature*)>
<!ELEMENT firstOrderFeature (structuralFeaturesList, property, pathLen, lastTable)>
<!ELEMENT pathLen (#PCDATA)>
<!ELEMENT lastTable (#PCDATA)>
<!ELEMENT structuralFeaturesList (structuralFeature*)>
<!ELEMENT property (attribute, (value | interval), conditionalProbabilityList, associatedQuery)>
<!ELEMENT interval (firstValue, latterValue)>
<!ELEMENT firstValue (#PCDATA)>
<!ELEMENT latterValue (#PCDATA)>

<!ELEMENT value (#PCDATA)>
<!ATTLIST value
	class CDATA #REQUIRED
>
<!ELEMENT conditionalProbabilityList (conditionalProbabilityElement*)>
<!ELEMENT conditionalProbabilityElement (value)>
<!ATTLIST conditionalProbabilityElement
	conditionalProbability CDATA #REQUIRED
>
<!ELEMENT structuralFeature (probabilityDistributions, relationshipList, associatedQuery)>
<!ELEMENT associatedQuery (#PCDATA)>
<!ELEMENT probabilityDistributions (probabilityDistributionElement)*>
<!ELEMENT probabilityDistributionElement (value)>
<!ATTLIST probabilityDistributionElement
	conditionalProbability CDATA #REQUIRED
	jointProbability CDATA #REQUIRED
>
<!ELEMENT distinctStructuralFeaturesList (structuralFeature*)>
