XML referens

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>

Tillbaka