Search

Page tree
Skip to end of metadata
Go to start of metadata

Данный документ содержит описание формата загружаемых xml-файлов со справочниками.

XSD-схема

Заружаемые xml файлы должны соответствовать приложенной к версии xsd схеме.

XSD схема для версии 2.1 имеет следующий вид и является совместимой с будущими версиями:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://hflabs.ru/rcd/schema/dictionary"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://hflabs.ru/rcd/schema/dictionary">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
    <xsd:annotation>
        <xsd:documentation><![CDATA[
	        RCD XML Dictionary Schema, version 1.0
	        This defines a simple and consistent way of creating a namespace
	        of JavaBeans objects, managed by a RCD application.
		]]></xsd:documentation>
    </xsd:annotation>
    <xsd:element name="dictionary">
        <xsd:annotation>
            <xsd:documentation><![CDATA[
	The top level (typically root) element.
			]]></xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="metaField" minOccurs="0" maxOccurs="unbounded"/>
                <xsd:element ref="record" minOccurs="0" maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="metaField">
        <xsd:annotation>
            <xsd:documentation><![CDATA[
                Defines a single META column for dictionary
			]]></xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:attribute name="name" type="xsd:string" use="required">
                <xsd:annotation>
                    <xsd:documentation><![CDATA[
	                    The unique name for META column
				]]></xsd:documentation>
                </xsd:annotation>
            </xsd:attribute>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="field">
        <xsd:annotation>
            <xsd:documentation><![CDATA[
                Defines a record field
			]]></xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:simpleContent>
                <xsd:extension base="xsd:string">
                    <xsd:attribute name="name" type="xsd:string" use="required">
                        <xsd:annotation>
                            <xsd:documentation><![CDATA[
                                The meta field name reference
                        ]]></xsd:documentation>
                        </xsd:annotation>
                    </xsd:attribute>
                </xsd:extension>
            </xsd:simpleContent>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="record">
        <xsd:annotation>
            <xsd:documentation><![CDATA[
                Defines a single dictionary record
			]]></xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="field" minOccurs="1" maxOccurs="unbounded"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

Особенности формата

Первичным ключом справочника считается первый объявленный metaField в xml-файле. В случае, если в файле содержится несколько записей справочника с одинаковым первичным ключом, загружается только последний из этих справочников.

Пример файла

Пример справочника в xml виде выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<dictionary xmlns="http://hflabs.ru/rcd/schema/dictionary">
    <metaField name="HID"/>
    <metaField name="NAME"/>
    <metaField name="DESCRIPTION"/>
    <record>
        <field name="HID">1</field>
        <field name="NAME"><![CDATA[ONE>]]></field>
        <field name="DESCRIPTION">Без разделителей и кавычек</field>
    </record>
    <record>
        <field name="DESCRIPTION">С разделителем, без кавычек</field>
        <field name="NAME">ON;E</field>
        <field name="HID">2</field>
    </record>
    <record>
        <field name="HID">3</field>
        <field name="NAME">O "N" E</field>
        <field name="DESCRIPTION">Без разделителя, c кавычками</field>
    </record>
    <record>
        <field name="HID">4</field>
        <field name="NAME">O "N;" E</field>
        <field name="DESCRIPTION">C разделителем и кавычками</field>
    </record>
    <record>
        <field name="HID">5</field>
        <field name="NAME"/>
        <field name="DESCRIPTION">Пустое значение</field>
    </record>
</dictionary>

 

 

  • No labels