Definition Type Element
Name systemCatalog
Namespace urn:org:dx-competition:system
Abstract False
Documentation This is a general-purpose schema for XML files that document real-world systems. The files contain a catalog of components, their possible states, and a per-system connectivity graph. Care has been taken to omit behavioral information, such as state transitions, from the description.
XSD Schema .\DXCSystemCatalogSchema.xsd
XSD Schema Diagram
XSD Schema Code
<xs:element name="systemCatalog" >
  <xs:annotation>
    <xs:documentation>This is a general-purpose schema for XML files that document real-world systems. The files contain a catalog of components, their possible states, and a per-system connectivity graph. Care has been taken to omit behavioral information, such as state transitions, from the description. </xs:documentation>
  </xs:annotation>

  <xs:complexType>
    <xs:sequence>
      <xs:element name="systemInstances">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="systemInstance">
              <xs:annotation>
                <xs:documentation>Identifies a system in a given configuration.</xs:documentation>
              </xs:annotation>

              <xs:complexType>
                <xs:attribute name="id" use="required"/>
                <xs:attribute name="system" type="xs:Name" use="required">
                  <xs:annotation>
                    <xs:documentation>Reference to a &lt;system> element.</xs:documentation>
                  </xs:annotation>

                </xs:attribute>

                <xs:attribute name="configuration" type="xs:Name" use="optional">
                  <xs:annotation>
                    <xs:documentation>Reference to a &amp;lt;modularConnectionSet&amp;gt;. Must be contained in the configurationCatalog of the specified system.</xs:documentation>
                  </xs:annotation>

                </xs:attribute>

              </xs:complexType>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element name="systems">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="system">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="systemName" type="xs:Name"/>
                  <xs:element name="description" type="xs:string"/>
                  <xs:element name="components">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="component" type="s:component"/>
                      </xs:sequence>

                    </xs:complexType>

                  </xs:element>

                  <xs:element name="connections">
                    <xs:annotation>
                      <xs:documentation>Connections are non-directed. A connection between two components usually means they are touching. It can also symbolize a more abstract energy transfer relationship, such as a light sensor positioned before a light bulb.</xs:documentation>
                    </xs:annotation>

                    <xs:complexType>
                      <xs:sequence>
                        <xs:element minOccurs="0" maxOccurs="unbounded" name="connection" type="s:connection"/>
                      </xs:sequence>

                    </xs:complexType>

                  </xs:element>

                  <xs:element minOccurs="0" name="configurationCatalog">
                    <xs:annotation>
                      <xs:documentation>Contains the system's possible configurations. Provided for systems that have modular connections, such as components with plugs that can be swapped while leaving most of the system unchanged.</xs:documentation>
                    </xs:annotation>

                    <xs:complexType>
                      <xs:sequence>
                        <xs:element maxOccurs="unbounded" name="modularConnectionSet">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="name" type="xs:Name"/>
                              <xs:element name="connections">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element maxOccurs="unbounded" name="connection" type="s:connection"/>
                                  </xs:sequence>

                                </xs:complexType>

                              </xs:element>

                            </xs:sequence>

                          </xs:complexType>

                        </xs:element>

                      </xs:sequence>

                    </xs:complexType>

                  </xs:element>

                </xs:sequence>

              </xs:complexType>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element name="componentTypeCatalog">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="componentType" type="s:componentType"/>
          </xs:sequence>

        </xs:complexType>

      </xs:element>

      <xs:element name="modeCatalog">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="modeGroup">
              <xs:annotation>
                <xs:documentation>Describes modes shared by one or more componentTypes. </xs:documentation>
              </xs:annotation>

              <xs:complexType>
                <xs:sequence>
                  <xs:element name="name" type="xs:Name"/>
                  <xs:element maxOccurs="unbounded" name="mode" type="s:mode">
                    <xs:annotation>
                      <xs:documentation>Can be of type &quot;mode&quot; or &quot;faultMode&quot;. Diagnoses contain only faultModes, whereas state estimates may contain both.</xs:documentation>
                    </xs:annotation>

                  </xs:element>

                </xs:sequence>

              </xs:complexType>

            </xs:element>

          </xs:sequence>

        </xs:complexType>

      </xs:element>

    </xs:sequence>

  </xs:complexType>

  <xs:key name="systemID">
    <xs:selector xpath="s:systems/s:system"/>
    <xs:field xpath="s:systemName"/>
  </xs:key>

  <xs:keyref name="x" refer="s:systemID">
    <xs:selector xpath="s:systemInstances/s:systemInstance"/>
    <xs:field xpath="@systemName"/>
  </xs:keyref>

  <xs:key name="componentTypeName">
    <xs:selector xpath="s:componentTypeCatalog/s:componentType"/>
    <xs:field xpath="s:name"/>
  </xs:key>

  <xs:keyref name="x3" refer="s:componentTypeName">
    <xs:selector xpath="s:systems/s:system/s:components/s:component"/>
    <xs:field xpath="s:componentType"/>
  </xs:keyref>

  <xs:key name="modeGroupID">
    <xs:selector xpath="s:modeCatalog/s:modeGroup"/>
    <xs:field xpath="s:name"/>
  </xs:key>

  <xs:keyref name="x10" refer="s:modeGroupID">
    <xs:selector xpath="s:componentTypeCatalog/s:componentType"/>
    <xs:field xpath="s:modesRef"/>
  </xs:keyref>

  <xs:key name="componentID">
    <xs:selector xpath="s:systems/s:system/s:components/s:component"/>
    <xs:field xpath="s:name"/>
  </xs:key>

  <xs:keyref name="x4" refer="s:componentID">
    <xs:selector xpath="s:systems/s:system/s:connections/s:connection"/>
    <xs:field xpath="s:c1"/>
  </xs:keyref>

  <xs:keyref name="x5" refer="s:componentID">
    <xs:selector xpath="s:systems/s:system/s:connections/s:connection"/>
    <xs:field xpath="s:c2"/>
  </xs:keyref>

  <xs:keyref name="x6" refer="s:componentID">
    <xs:selector xpath="s:systems/s:system/s:configurationCatalog/s:modularConnectionSet/s:connections/s:connection"/>
    <xs:field xpath="s:c1"/>
  </xs:keyref>

  <xs:keyref name="x7" refer="s:componentID">
    <xs:selector xpath="s:systems/s:system/s:configurationCatalog/s:modularConnectionSet/s:connections/s:connection"/>
    <xs:field xpath="s:c2"/>
  </xs:keyref>

  <xs:key name="modularConnectionID">
    <xs:selector xpath="s:systems/s:system/s:configurationCatalog/s:modularConnectionSet"/>
    <xs:field xpath="s:name"/>
  </xs:key>

  <xs:keyref name="x2" refer="s:modularConnectionID">
    <xs:selector xpath="s:systemInstances/s:systemInstance"/>
    <xs:field xpath="@configuration"/>
  </xs:keyref>

</xs:element>
Child Elements
Name Type Min Occurs Max Occurs
Derivation Tree
[No Sub Types]
systemCatalog
    [No Super Types]
Generated using Liquid XML Studio by Liquid Technologies Ltd