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>