XML Scheman
<?xml version="1.0" encoding="UTF-8"?>
<!-- Inventarium.xsd -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="ROOT">
...
</xsd:element>
</xsd:schema>
<xsd:element name="ROOT">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="El01" type="xsd:string"/>
<xsd:element name="El02" type="xsd:decimal"/> ex. -5.2, 1, 2.345
<xsd:element name="El03" type="xsd:integer"/> ex. -345, 0, 1000
<xsd:element name="El04" type="xsd:positiveInteger"/> 1 -> n
<xsd:element name="El05" type="xsd:negativeInteger"/> -n -> -1
<xsd:element name="El06" type="xsd:boolean"/> true,false,1,0
<xsd:element name="El07" type="xsd:date"/> YYYY-MM-DD
<xsd:element name="El08" type="xsd:time"/> hh:mm:ss[.ms]
<xsd:element name="El09" type="xsd:dateTime"/> ex. 1948-05-21T17:28:00.00
<xsd:element name="El10" type="xsd:gMonth"/> --MM--
<xsd:element name="El11" type="xsd:gYear"/> YYYY
<xsd:element name="El12" type="xsd:gDay"/> ---DD
<xsd:element name="El13" type="xsd:gYearMonth"/> YYYY-MM
<xsd:element name="El14" type="xsd:anyURI"/>
http://www.mjyOnline.com
<xsd:sequence>
<xsd:complexType>
</xsd:element>
<xsd:element name="PRIS">
<xsd:simpleType>
<xsd:restriction base="xsd:decimal">
<xsd:minExclusive value="0"/>
<xsd:maxExclusive value="1000"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
eller
<xsd:element name="El1" type="string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="El2" type="string" minOccurs="0" maxOccurs="1"/>
<xsd:element name="El3" type="string" minOccurs="1" maxOccurs="10"/>
<xsd:element name="El1">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="val1"/>
<xsd:enumeration value="val2"/>
<xsd:enumeration value="val3"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="ISBN">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="+\d{2}-\d{4}-\d{3}-\d{1}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:simpletype name="typ1">
...
<xsd:simpletype>
<xsd:complextype name="typ2">
...
<xsd:complextype>
Ge namn för användning senare i specifikationen
<xsd:element name="el">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="el1" type="typ1"/>
<xsd:element name="el2" type="typ2"/>
<xsd:element name="el3" type="typ3"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Elementen måste anges i samma ordning som specificerat
<xsd:element name="el">
<xsd:complexType>
<xsd:choice>
<xsd:element name="el1" type="typ1"/>
<xsd:element name="el2" type="typ2"/>
<xsd:element name="el3" type="typ3"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
Elementen måste vara enbart en av de specificerade
<xsd:element name="el">
<xsd:complexType>
<xsd:all>
<xsd:element name="el1" type="typ1"/>
<xsd:element name="el2" type="typ2"/>
<xsd:element name="el3" type="typ3"/>
</xsd:all>
</xsd:complexType>
</xsd:element>
Element får utelämnas och vara i vilken ordning som helst
<xsd:element name="BR">
<xsd:complexType>
</xsd:complexType>
</xsd:element>
Deklaration tomma element. <BR></BR> eller <BR/>
<xsd:sequence>...<xsd:choice>...</xsd:choice>...<xsd:sequence> Går bra
<xsd:choice>...<xsd:sequence>...</xsd:sequence>...<xsd:choice> Går också bra
<xsd:sequence>...<xsd:all>...</xsd:all>...<xsd:sequence> Går INTE bra
<xsd:choice>...<xsd:all>...</xsd:all>...<xsd:choice> Går INTE bra
<xsd:all>...<xsd:sequence>...</xsd:sequence>...<xsd:all> Går INTE bra
<xsd:element name="el">
<xsd:complexType mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="a" type="xsd:string"/>
<xsd:element name="b" type="xsd:string"/>
<xsd:element name="c" type="xsd:string"/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
ex. <el> Text kan blandas med och <a>a</a>,b och <c>c</c> får förekomma o eller flera ggr blandat hur <b>b</b> <a>a</a> som helst</el>
<xsd:element name="BILD">
<xsd:complexType>
<xsd:attribute name="Källa" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
ex. <BILD Källa="bild.gif"/>
<xsd:attribute name="Attr1" type="xsd:boolean" use="required"/>
<xsd:attribute name="Attr2" type="xsd:string" default="hej"/>
<xsd:attribute name="Attr3" type="xsd:string" fixed="hej"/> samma som default
<xsd:attribute name="Attr4">
<xsd:simpletype>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="a"/>
<xsd:enumeration value="b"/>
<xsd:enumeration value="c"/>
</xsd:restriction>
</xsd:simpletype>
</xsd:attribute>
<xsd:element name="...">
<xsd:complexType>
<xsd:sequence>
...
</xsd:sequence>
<xsd:choice>
...
</xsd:choice>
<xsd:all>
...
</xsd:all>
...
<xsd:attribute name="..."> Attribut deklareras sist
...
</xsd:attribute>
</xsd:complexType>
</xsd:element>
<xsd:element name="SIDOR">
<xsd:complexType>
<xsd:simplecontent>
<xsd:extension base="xsd:positiveInteger">
<xsd:attribute name="index" type="xsd:positiveInteger"/>
</xsd:extension>
</xsd:simplecontent>
</xsd:complexType>
</xsd:element>
ex. <SIDOR index="34">124</SIDOR>