Mercurial > hg > camir-aes2014
diff toolboxes/xml_toolbox/matlab.xsd @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolboxes/xml_toolbox/matlab.xsd Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,146 @@ +<!-- Copyright 2002 Geodise Project, University of Southampton --> +<!-- matlab.xsd - Jasmin Wason - 01/11/02 --> +<!-- Schema to validate XML documents generated by the xml_save function --> +<!-- of the XML Toolbox for Matlab written by Marc Molinari. --> +<!-- Modification 14/11/02 Jasmin Wason --> +<!-- Included a definition for the complex element --> +<!-- Modification 27/11/02 Jasmin Wason --> +<!-- Added complex element as a child of struct, sparse and cell --> +<xs:schema targetNamespace="http://www.geodise.org/matlab.xsd" xmlns="http://www.geodise.org/matlab.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> + <!-- struct element definition --> + <!-- A struct element contains 0 or more struct, double, char, sparse, cell or complex elements --> + <!-- These child elements may appear in any order --> + <!-- A struct element contains a list of attributes as described in the structAttributes attributeGroup --> + <xs:element name="struct"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="struct" /> + <xs:element ref="double" /> + <xs:element ref="char" /> + <xs:element ref="sparse" /> + <xs:element ref="cell" /> + <xs:element ref="complex" /> + </xs:choice> + <xs:attributeGroup ref="structAttributes" /> + </xs:complexType> + </xs:element> + <!-- double element definition --> + <!-- double may contain numerical entities of type integer, double, long etc --> + <!-- The content is a list of XSD doubles --> + <!-- and a list of attributes as described in the commonAttributes attributeGroup --> + <xs:element name="double"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="listOfXsdDoubles"> + <xs:attributeGroup ref="commonAttributes" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <!-- char element definition --> + <!-- char contains alphanumerical entities (characters, strings, etc.) --> + <!-- The content is an XSD string --> + <!-- and a list of attributes as described in the commonAttributes attributeGroup --> + <xs:element name="char"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attributeGroup ref="commonAttributes" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <!-- sparse element definition --> + <!-- sparse contains sparse matrices (2 arrays of type double and 1 array of type double or complex) --> + <!-- ([i], [j], [k]), S(i, j)=k) --> + <!-- A sparse element is either empty or contains --> + <!-- a list of 2 double + 1 double or complex element --> + <!-- and a list of attributes as described in the commonAttributes attributeGroup --> + <xs:element name="sparse"> + <xs:complexType> + <xs:sequence minOccurs="0"> + <xs:element ref="double" minOccurs="2" maxOccurs="2" /> + <xs:choice> + <xs:element ref="double" minOccurs="1" maxOccurs="1" /> + <xs:element ref="complex" minOccurs="1" maxOccurs="1" /> + </xs:choice> + </xs:sequence> + <xs:attributeGroup ref="commonAttributes" /> + </xs:complexType> + </xs:element> + <!-- cell element definition --> + <!-- cell contains cell entities --> + <!-- A cell element contains 0 or more struct, double, char, sparse, cell or complex elements --> + <!-- These child elements may appear in any order --> + <!-- A cell element contains a list of attributes as described in the commonAttributes attributeGroup --> + <xs:element name="cell"> + <xs:complexType> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:element ref="struct" /> + <xs:element ref="double" /> + <xs:element ref="char" /> + <xs:element ref="sparse" /> + <xs:element ref="cell" /> + <xs:element ref="complex" /> + </xs:choice> + <xs:attributeGroup ref="commonAttributes" /> + </xs:complexType> + </xs:element> + <!-- complex element definition --> + <!-- complex contains complex numbers a+ib with real part a and imaginary part b, which are both represented by entries of type double --> + <!-- A complex element contains a list of either 2 or 0 double elements --> + <!-- and a list of attributes as described in the commonAttributes attributeGroup --> + <xs:element name="complex"> + <xs:complexType> + <xs:sequence> + <xs:element name="double" minOccurs="2" maxOccurs="2"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="nonEmptyListOfXsdDoubles"> + <xs:attributeGroup ref="commonAttributes" /> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + </xs:sequence> + <xs:attributeGroup ref="commonAttributes" /> + </xs:complexType> + </xs:element> + <!-- commonAttributes is a list of attributes that all struct, double, char, sparse and cell elements have --> + <xs:attributeGroup name="commonAttributes"> + <xs:attribute name="idx" type="xs:integer" use="required" /> + <xs:attribute name="name" type="xs:string" use="optional" /> + <xs:attribute name="size" type="listOfXsdInts" use="optional" default="1 1" /> + <!-- idx indicates what position in the parent array this element belongs. For root element i="0" --> + <!-- name represents the name of the current element inside a structure --> + <!-- name only occurs in elements inside a structure, although this schema does not enforce this rule --> + <!-- size represents the size of the entry. It allows Matlab to form matrices from vectors with reshape() --> + </xs:attributeGroup> + <!-- structAttributes is a list of attributes that all struct elements have --> + <xs:attributeGroup name="structAttributes"> + <xs:attributeGroup ref="commonAttributes" /> + <xs:attribute name="fields" type="listOfXsdStrings" use="optional" /> + <!-- Include all the attributes in commonAttributes --> + <!-- fields contains the field names of a structure. --> + </xs:attributeGroup> + <!-- listOfXsdDoubles is a type describing a list of xs:doubles --> + <!-- i.e. a double as defined by the XML Schema specification, not matlab.xsd --> + <xs:simpleType name="listOfXsdDoubles"> + <xs:list itemType="xs:double" /> + </xs:simpleType> + <!-- nonEmptyListOfXsdDoubles is a type describing a list of xs:doubles --> + <!-- with length at least 1 --> + <xs:simpleType name="nonEmptyListOfXsdDoubles"> + <xs:restriction base="listOfXsdDoubles"> + <xs:minLength value="1" /> + </xs:restriction> + </xs:simpleType> + <!-- listOfXsdInts is a type describing a list of integers --> + <xs:simpleType name="listOfXsdInts"> + <xs:list itemType="xs:int" /> + </xs:simpleType> + <!-- listOfXsdStrings is a type describing a list of strings --> + <xs:simpleType name="listOfXsdStrings"> + <xs:list itemType="xs:string" /> + </xs:simpleType> +</xs:schema>