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)
 
(4 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 utilisé dans le Designer Mapping et pour effectuer une composition de document.
+
=== 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">
Ligne 80 : Ligne 80 :
 
                       <xs:documentation>Intended to identify a '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:restriction base="xs:string">
 
                        <xs:minLength value="1"/>
 
                        <xs:maxLength value="10"/>
 
                      </xs:restriction>
 
                    </xs:simpleType>
 
 
                   </xs:attribute>
 
                   </xs:attribute>
 
                 </xs:complexType>
 
                 </xs:complexType>

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>