[Erp5-report] r39631 nicolas - /erp5/trunk/utils/xml_marshaller/src/xml_marshaller/doc/
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Oct 28 18:22:01 CEST 2010
Author: nicolas
Date: Thu Oct 28 18:22:00 2010
New Revision: 39631
URL: http://svn.erp5.org?rev=39631&view=rev
Log:
Add XSD to check generated XML compliancy
Added:
erp5/trunk/utils/xml_marshaller/src/xml_marshaller/doc/
erp5/trunk/utils/xml_marshaller/src/xml_marshaller/doc/xml_marshaller.xsd
Added: erp5/trunk/utils/xml_marshaller/src/xml_marshaller/doc/xml_marshaller.xsd
URL: http://svn.erp5.org/erp5/trunk/utils/xml_marshaller/src/xml_marshaller/doc/xml_marshaller.xsd?rev=39631&view=auto
==============================================================================
--- erp5/trunk/utils/xml_marshaller/src/xml_marshaller/doc/xml_marshaller.xsd (added)
+++ erp5/trunk/utils/xml_marshaller/src/xml_marshaller/doc/xml_marshaller.xsd [utf8] Thu Oct 28 18:22:00 2010
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="unqualified"
+ attributeFormDefault="unqualified">
+
+
+ <!-- SimpleType Declarations -->
+
+ <xs:simpleType name="Complex">
+ <xs:annotation>
+ <xs:documentation>
+ Two float with space as separator
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="\d+\.\d*\s\d+\.\d*"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="None">
+ <xs:annotation>
+ <xs:documentation>
+ Empty element
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="0"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- ComplexType declarations -->
+
+ <xs:complexType name="Reference">
+ <xs:annotation>
+ <xs:documentation>
+ Its attribute id should refer to foreign key
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="id" type="xs:string"/>
+ </xs:complexType>
+
+ <xs:complexType name="Object">
+ <xs:annotation>
+ <xs:documentation>
+ This element contains one tuple (__getinitargs__),
+ and one dictionary (__dict__).
+ Its attributes are id, module and class
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="tuple" type="AllTypeList"/>
+ <xs:element name="dictionary" type="Dictionary"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ <xs:attribute name="module" type="xs:string" use="required"/>
+ <xs:attribute name="class" type="xs:string" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="List">
+ <xs:annotation>
+ <xs:documentation>
+ Extension of AllTypeList with id attribute
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="AllTypeList">
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Set">
+ <xs:annotation>
+ <xs:documentation>
+ Extension of AllTypeList with id attribute
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="AllTypeList">
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+
+ <xs:complexType name="Dictionary">
+ <xs:annotation>
+ <xs:documentation>
+ Extension of AllTypeList with id attribute
+ Contains even occurences of AllTypeList
+ XXX can not be asserted with XSD
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="AllTypeList">
+ <xs:attribute name="id" type="xs:string" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:simpleType name="Boolean">
+ <xs:annotation>
+ <xs:documentation>
+ 0 or 1
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:integer">
+ <xs:minInclusive value="0"/>
+ <xs:maxInclusive value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="AllTypeList">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="tuple" type="AllTypeList"/>
+ <xs:element name="list" type="List"/>
+ <xs:element name="set" type="Set"/>
+ <xs:element name="dictionary" type="Dictionary"/>
+ <xs:element name="int" type="xs:integer"/>
+ <xs:element name="float" type="xs:float"/>
+ <xs:element name="long" type="xs:double"/>
+ <xs:element name="complex" type="Complex"/>
+ <xs:element name="string" type="xs:string"/>
+ <xs:element name="unicode" type="xs:string"/>
+ <xs:element name="object" type="Object"/>
+ <xs:element name="reference" type="Reference"/>
+ <xs:element name="code" type="xs:string"/>
+ <xs:element name="none" type="None"/>
+ <xs:element name="bool" type="Boolean"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <!-- root Element -->
+
+ <xs:element name="marshal" type="AllTypeList">
+ <xs:annotation>
+ <xs:documentation>
+ Extension of AllTypeList.
+ Assert that all id attributes are unique
+ </xs:documentation>
+ </xs:annotation>
+ <xs:unique name="attribute_id">
+ <xs:selector xpath=".//object|.//list|.//dictionary"/>
+ <xs:field xpath="@id"/>
+ </xs:unique>
+ <xs:key name="id_list">
+ <xs:selector xpath=".//object|.//list|.//dictionary"/>
+ <xs:field xpath="@id"/>
+ </xs:key>
+ <xs:keyref name="id_list_reference" refer="id_list">
+ <xs:selector xpath=".//reference"/>
+ <xs:field xpath="@id"/>
+ </xs:keyref>
+ </xs:element>
+
+</xs:schema>
+
+
More information about the Erp5-report
mailing list