The following XML Schema douments are available in the ice.NET Platform:
icedata.xsd -- Generic ice.NET data exchange format:
<?xml version="1.0" encoding="utf-8"?>
<!--
ice.NET Platform
Copyright (c) PDTec AG. All rights reserved.
-->
<xs:schema elementFormDefault="qualified" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="D5" type="D5" />
<xs:complexType name="D5">
<xs:sequence>
<xs:element name="Data" type="Data" maxOccurs="1" minOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Data">
<xs:sequence>
<xs:element name="Folders" maxOccurs="unbounded" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Folder" type="Folder" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Objects" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Object" type="Object" maxOccurs="unbounded" minOccurs="0">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Relationships" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="Relationship" type="Relationship" maxOccurs="unbounded" minOccurs="0">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Folder">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="Keys" type="Keys" minOccurs="0" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="ParentId" type="xs:string" use="optional" />
</xs:complexType>
<xs:complexType name="Object">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="Keys" type="Keys" minOccurs="0" maxOccurs="1" />
<xs:element name="Attributes">
<xs:complexType>
<xs:sequence>
<xs:element name="Attribute" minOccurs="0" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:attribute name="DeclaringType" type="xs:string" use="required" />
<xs:attribute name="AttrDefName" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ContentVersions" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="ContentVersion" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="Content" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="Version" type="xs:string" use="required" />
<xs:attribute name="FileName" type="xs:string" use="required" />
<xs:attribute name="FileUuid" type="xs:string" use="required" />
<xs:attribute name="VaultName" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="Type" type="xs:string" use="required" />
<xs:attribute name="FolderId" type="xs:string" use="optional" />
</xs:complexType>
<xs:complexType name="Relationship">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="ObjectFrom" type="ObjRef" minOccurs="1" maxOccurs="1" />
<xs:element name="ObjectTo" type="ObjRef" maxOccurs="1" minOccurs="1" />
<xs:element name="Attributes">
<xs:complexType>
<xs:sequence>
<xs:element name="Attribute" minOccurs="0" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:attribute name="AttrDefName" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="Type" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="ObjRef">
<xs:sequence />
<xs:attribute name="ObjRef" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="Keys">
<xs:sequence>
<xs:element name="Key" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:schema>
icemodel.xsd -- ice.NET data model (packages) representation:
<?xml version="1.0" encoding="utf-8"?>
<!--
ice.NET Platform
Copyright (c) PDTec AG. All rights reserved.
-->
<xs:schema elementFormDefault="qualified" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="D5" type="D5" />
<xs:complexType name="D5">
<xs:sequence>
<xs:element name="Model" type="Model" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Model">
<xs:sequence>
<xs:element name="Package" type="Package" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Package">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="Dependencies" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Dependency" type="Dependency" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="AttrTypes" maxOccurs="1" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="AttrType" type="AttrType" maxOccurs="unbounded" minOccurs="0">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ObjTypes" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="ObjType" type="ObjType" maxOccurs="unbounded" minOccurs="0">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RelTypes" maxOccurs="unbounded" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="RelType" type="RelType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="DisplayName" type="xs:string" use="required" />
<xs:attribute name="Version" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="Dependency">
<xs:attribute name="PackageRef" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="AttrType">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="EnumValue" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="DisplayName" type="xs:string" use="required" />
<xs:attribute name="Type" type="AttrValueType" use="required" />
<xs:attribute name="Unit" type="xs:string" use="required" />
<xs:attribute name="Range" type="xs:string" use="optional" />
</xs:complexType>
<xs:complexType name="ObjType">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="Supertypes">
<xs:complexType>
<xs:sequence>
<xs:element name="ObjTypeRef" type="ObjTypeRef" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Attributes">
<xs:complexType>
<xs:sequence>
<xs:element name="Attribute" type="AttrDef" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="DisplayName" type="xs:string" use="required" />
<xs:attribute name="Abstract" type="xs:boolean" use="required" />
<xs:attribute name="Bulk" type="xs:boolean" use="optional" />
</xs:complexType>
<xs:complexType name="RelType">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
<xs:element name="DescriptionFrom" type="xs:string" />
<xs:element name="DescriptionTo" type="xs:string" />
<xs:element name="ObjTypesFrom" type="RelRole" minOccurs="1" maxOccurs="1" />
<xs:element name="ObjTypesTo" type="RelRole" minOccurs="1" maxOccurs="1" />
<xs:element name="Attributes">
<xs:complexType>
<xs:sequence>
<xs:element name="Attribute" type="AttrDef" minOccurs="0" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="DisplayName" type="xs:string" use="required" />
<xs:attribute name="CardinalityFrom" type="xs:string" use="required" />
<xs:attribute name="CardinalityTo" type="xs:string" use="required" />
<xs:attribute name="OrderedFrom" type="xs:boolean" use="required" />
<xs:attribute name="OrderedTo" type="xs:boolean" use="required" />
</xs:complexType>
<xs:complexType name="RelRole">
<xs:sequence>
<xs:element name="ObjTypeRef" type="ObjTypeRef" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ObjTypeRef">
<xs:sequence />
<xs:attribute name="Name" type="xs:string" use="required" />
</xs:complexType>
<xs:complexType name="AttrDef">
<xs:sequence>
<xs:element name="Description" type="xs:string" />
</xs:sequence>
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="DisplayName" type="xs:string" use="required" />
<xs:attribute name="AttrTypeRef" type="xs:string" use="required" />
<xs:attribute name="StorageType" type="StorageType" use="optional" />
</xs:complexType>
<xs:simpleType name="AttrValueType">
<xs:restriction base="xs:string">
<xs:enumeration value="String"/>
<xs:enumeration value="Enum"/>
<xs:enumeration value="Bool"/>
<xs:enumeration value="Integer"/>
<xs:enumeration value="Real"/>
<xs:enumeration value="DateTime"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="Cardinality">
<xs:restriction base="xs:string">
<xs:enumeration value="Aggregation"/>
<xs:enumeration value="0..1"/>
<xs:enumeration value="1"/>
<xs:enumeration value="0..n"/>
<xs:enumeration value="1..n"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StorageType">
<xs:restriction base="xs:string">
<xs:enumeration value="Standard"/>
<xs:enumeration value="Bulk"/>
<xs:enumeration value="Table"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>