ONYX - 9.0 - Utilisation - Designer XML Schema Definition (XSD)

Différence entre versions

De MappingDoc
(Ce document décrit au travers un fichier XSD, le schéma d'un flux XML pouvant être pris en charge par Mapping Designer)
 
(10 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
=== Ce document décrit au travers un fichier XSD, le schéma d'un flux XML pouvant être pris en charge par Mapping Designer ===
 +
 
<syntaxhighlight lang="xml">
 
<syntaxhighlight lang="xml">
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 rel. 2 sp2 (http://www.altova.com) by SHOCK (SHOCK) -->
 
 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="doc">
+
  <xs:element name="doc">
<xs:annotation>
+
    <xs:annotation>
<xs:documentation>ROOT element with no other semantic</xs:documentation>
+
      <xs:documentation>ROOT element with no other semantic</xs:documentation>
</xs:annotation>
+
    </xs:annotation>
              <xs:complexType>
+
    <xs:complexType>
<xs:sequence>
+
      <xs:sequence>
                        <xs:element name="page" minOccurs="0" maxOccurs="unbounded">
+
        <xs:element name="page" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
+
          <xs:annotation>
<xs:documentation>Represents a document or a single page in a document. The order between 'group' and 'field' child elements doesn't matter, but the order between 'group' elements of same name requires special attention </xs:documentation>
+
            <xs:documentation>Represents a document or a single page in a document. The order between 'group' and 'field' child elements doesn't matter, but the order between 'group' elements of same name requires special attention </xs:documentation>
</xs:annotation>
+
          </xs:annotation>
<xs:complexType>
+
          <xs:complexType>
<xs:choice maxOccurs="unbounded">
+
            <xs:choice maxOccurs="unbounded">
<xs:element name="field" minOccurs="0" maxOccurs="unbounded">
+
              <xs:element name="field" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
+
                <xs:annotation>
<xs:documentation>Represents a simple field (a kind of attribute) for the whole page.</xs:documentation>
+
                  <xs:documentation>Represents a simple field (a simple data) for the whole page.</xs:documentation>
</xs:annotation>
+
                </xs:annotation>
<xs:complexType>
+
                <xs:complexType>
<xs:simpleContent>
+
                  <xs:simpleContent>
<xs:extension base="nonEmptyString">
+
                    <xs:extension base="nonEmptyString">
<xs:attribute name="name" type="nonEmptyString" use="required">
+
                      <xs:attribute name="name" type="nonEmptyString" use="required">
<xs:annotation>
+
                        <xs:annotation>
<xs:documentation>Required to identify different types of 'field'. Value must be unique at this level (preceding and following sibling)</xs:documentation>
+
                          <xs:documentation>Required to identify each 'field'. Value must be unique at this level.</xs:documentation>
</xs:annotation>
+
                        </xs:annotation>
</xs:attribute>
+
                      </xs:attribute>
</xs:extension>
+
                    </xs:extension>
</xs:simpleContent>
+
                  </xs:simpleContent>
</xs:complexType>
+
                </xs:complexType>
</xs:element>
+
              </xs:element>
<xs:element name="group" minOccurs="0" maxOccurs="unbounded">
+
              <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
+
                <xs:annotation>
<xs:documentation>A 'group' is a collection of lines and offers a convenient way to create tables</xs:documentation>
+
                  <xs:documentation>A 'group' is a collection of lines (records) and offers a convenient way to create tables</xs:documentation>
</xs:annotation>
+
                </xs:annotation>
<xs:complexType>
+
                <xs:complexType>
<xs:sequence>
+
                  <xs:sequence>
<xs:element name="line" minOccurs="0" maxOccurs="unbounded">
+
                    <xs:element name="line" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
+
                      <xs:annotation>
<xs:documentation>Represents a row in a table</xs:documentation>
+
                        <xs:documentation>Represents a row (a record) in a table. The order of the lines in the group requires special attention</xs:documentation>
</xs:annotation>
+
                      </xs:annotation>
<xs:complexType>
+
                      <xs:complexType>
<xs:sequence>
+
                        <xs:sequence>
<xs:element name="field" minOccurs="0" maxOccurs="unbounded">
+
                          <xs:element name="field" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
+
                            <xs:annotation>
<xs:documentation>Represents a field in a row</xs:documentation>
+
                              <xs:documentation>Represents a field (a data) in a row</xs:documentation>
</xs:annotation>
+
                            </xs:annotation>
<xs:complexType>
+
                            <xs:complexType>
<xs:simpleContent>
+
                              <xs:simpleContent>
<xs:extension base="nonEmptyString">
+
                                <xs:extension base="nonEmptyString">
<xs:attribute name="name" type="nonEmptyString" use="required">
+
                                  <xs:attribute name="name" type="nonEmptyString" use="required">
<xs:annotation>
+
                                    <xs:annotation>
<xs:documentation>Required to identify different types of 'field' in a line. Value must be unique at this level (preceding and following sibling)</xs:documentation>
+
                                      <xs:documentation>Required to identify each 'field' in the line. Value must be unique at this level</xs:documentation>
</xs:annotation>
+
                                    </xs:annotation>
</xs:attribute>
+
                                  </xs:attribute>
</xs:extension>
+
                                </xs:extension>
</xs:simpleContent>
+
                              </xs:simpleContent>
</xs:complexType>
+
                            </xs:complexType>
</xs:element>
+
                          </xs:element>
</xs:sequence>
+
                        </xs:sequence>
<xs:attribute name="name" type="nonEmptyString" use="required">
+
                        <xs:attribute name="name" type="nonEmptyString" use="required">
<xs:annotation>
+
                          <xs:annotation>
<xs:documentation>Intended to identify different types of 'line' in a given group</xs:documentation>
+
                            <xs:documentation>Intended to identify different types of 'line' in a given group</xs:documentation>
</xs:annotation>
+
                          </xs:annotation>
</xs:attribute>
+
                        </xs:attribute>
</xs:complexType>
+
                      </xs:complexType>
<xs:unique name="UniqueLineFieldName">
+
                      <xs:unique name="UniqueLineFieldName">
<xs:annotation>
+
                        <xs:annotation>
<xs:documentation>group/line/field/@name uniqueness</xs:documentation>
+
                          <xs:documentation>group/line/field/@name uniqueness</xs:documentation>
</xs:annotation>
+
                        </xs:annotation>
<xs:selector xpath="./field"/>
+
                        <xs:selector xpath="./field"/>
<xs:field xpath="@name"/>
+
                        <xs:field xpath="@name"/>
</xs:unique>
+
                      </xs:unique>
</xs:element>
+
                    </xs:element>
</xs:sequence>
+
                  </xs:sequence>
<xs:attribute name="name" use="required">
+
                  <xs:attribute name="name" use="required">
<xs:annotation>
+
                    <xs:annotation>
<xs:documentation>Intended to identify different types of 'group' in a given 'page'</xs:documentation>
+
                      <xs:documentation>Intended to identify a 'group' in a given 'page'</xs:documentation>
</xs:annotation>
+
                    </xs:annotation>
<xs:simpleType>
+
                  </xs:attribute>
<xs:restriction base="xs:string">
+
                </xs:complexType>
                                      <xs:minLength value="1"/>
+
              </xs:element>
                                      <xs:maxLength value="10"/>
+
            </xs:choice>
                                   
+
            <xs:attribute name="name" type="nonEmptyString" use="required">
                                  </xs:restriction>
+
              <xs:annotation>
                                  </xs:simpleType>
+
                <xs:documentation>Intended to identify different types of 'page' in the overall document</xs:documentation>
</xs:attribute>
+
              </xs:annotation>
</xs:complexType>
+
            </xs:attribute>
</xs:element>
+
          </xs:complexType>
</xs:choice>
+
          <xs:unique name="UniqueFieldName">
<xs:attribute name="name" type="nonEmptyString" use="required">
+
            <xs:annotation>
<xs:annotation>
+
              <xs:documentation>/doc/page/field/@name uniqueness</xs:documentation>
<xs:documentation>Intended to identify different types of 'page' in the overall document</xs:documentation>
+
            </xs:annotation>
</xs:annotation>
+
            <xs:selector xpath="./field"/>
</xs:attribute>
+
            <xs:field xpath="@name"/>
</xs:complexType>
+
          </xs:unique>
<xs:unique name="UniqueFieldName">
+
        </xs:element>
<xs:annotation>
+
      </xs:sequence>
<xs:documentation>/doc/page/field/@name uniqueness</xs:documentation>
+
    </xs:complexType>
</xs:annotation>
+
  </xs:element>
<xs:selector xpath="./field"/>
+
  <xs:simpleType name="nonEmptyString">
<xs:field xpath="@name"/>
+
    <xs:restriction base="xs:string">
</xs:unique>
+
      <xs:minLength value="1"/>
</xs:element>
+
    </xs:restriction>
</xs:sequence>
+
  </xs:simpleType>
</xs:complexType>
 
</xs:element>
 
<xs:simpleType name="nonEmptyString">
 
<xs:restriction base="xs:string">
 
<xs:minLength value="1"/>
 
</xs:restriction>
 
</xs:simpleType>
 
 
</xs:schema>
 
</xs:schema>
  
 
</syntaxhighlight><br />
 
</syntaxhighlight><br />

Version actuelle datée du 31 juillet 2020 à 17:16

Ce document décrit au travers un fichier XSD, le schéma d'un flux XML pouvant être pris en charge par Mapping Designer

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:element name="doc">
    <xs:annotation>
      <xs:documentation>ROOT element with no other semantic</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="page" minOccurs="0" maxOccurs="unbounded">
          <xs:annotation>
            <xs:documentation>Represents a document or a single page in a document. The order between 'group' and 'field' child elements doesn't matter, but the order between 'group' elements of same name requires special attention </xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="field" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Represents a simple field (a simple data) for the whole page.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="nonEmptyString">
                      <xs:attribute name="name" type="nonEmptyString" use="required">
                        <xs:annotation>
                          <xs:documentation>Required to identify each 'field'. Value must be unique at this level.</xs:documentation>
                        </xs:annotation>
                      </xs:attribute>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="group" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>A 'group' is a collection of lines (records) and offers a convenient way to create tables</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="line" minOccurs="0" maxOccurs="unbounded">
                      <xs:annotation>
                        <xs:documentation>Represents a row (a record) in a table. The order of the lines in the group requires special attention</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="field" minOccurs="0" maxOccurs="unbounded">
                            <xs:annotation>
                              <xs:documentation>Represents a field (a data) in a row</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="nonEmptyString">
                                  <xs:attribute name="name" type="nonEmptyString" use="required">
                                    <xs:annotation>
                                      <xs:documentation>Required to identify each 'field' in the line. Value must be unique at this level</xs:documentation>
                                    </xs:annotation>
                                  </xs:attribute>
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="name" type="nonEmptyString" use="required">
                          <xs:annotation>
                            <xs:documentation>Intended to identify different types of 'line' in a given group</xs:documentation>
                          </xs:annotation>
                        </xs:attribute>
                      </xs:complexType>
                      <xs:unique name="UniqueLineFieldName">
                        <xs:annotation>
                          <xs:documentation>group/line/field/@name uniqueness</xs:documentation>
                        </xs:annotation>
                        <xs:selector xpath="./field"/>
                        <xs:field xpath="@name"/>
                      </xs:unique>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="name" use="required">
                    <xs:annotation>
                      <xs:documentation>Intended to identify a 'group' in a given 'page'</xs:documentation>
                    </xs:annotation>
                  </xs:attribute>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attribute name="name" type="nonEmptyString" use="required">
              <xs:annotation>
                <xs:documentation>Intended to identify different types of 'page' in the overall document</xs:documentation>
              </xs:annotation>
            </xs:attribute>
          </xs:complexType>
          <xs:unique name="UniqueFieldName">
            <xs:annotation>
              <xs:documentation>/doc/page/field/@name uniqueness</xs:documentation>
            </xs:annotation>
            <xs:selector xpath="./field"/>
            <xs:field xpath="@name"/>
          </xs:unique>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="nonEmptyString">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>