Spot the error! Help needed!

wxdqz

New Member
Hi all,
I am a newbie to XML and have been trying to learn how to use schema to validate my entries. Can anyone try to help me spot what is wrong with my XSD because it keeps having error? I am not sure if I have used it correctly. Thank you for your help.

My XML file

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href=http://www.webdeveloper.com/forum/archive/index.php/"vehicles.xsl" ?>
<vehicle>
<car>
<reg>1FTN-707</reg>
<date>2006-07-28</date>
<start>10001</start>
<end>10010</end>
<id>101786J</id>
<purpose>demo</purpose>
<fuel>20.5</fuel>
<cost>31</cost>
</car>
<car>
<reg>1FTN-707</reg>
<date>2006-07-28</date>
<start>10010</start>
<end>10015</end>
<id>101786J</id>
<purpose>demo</purpose>
</car>
<car>
<reg>1FTN-707</reg>
<date>2006-07-27</date>
<start>9100</start>
<end>10001</end>
<id>101786J</id>
<purpose>seminar</purpose>
<fuel>95</fuel>
<cost>133</cost>
</car>
<car>
<reg>1CBL-099</reg>
<date>2006-07-02</date>
<start>1001</start>
<end>1050</end>
<id>195767B</id>
<purpose>to conference</purpose>
</car>
<car>
<reg>1CBL-099</reg>
<date>2006-07-02</date>
<start>1050</start>
<end>1100</end>
<id>195767B</id>
<purpose>from conference</purpose>
</car>
<car>
<reg>1CBL-099</reg>
<date>2006-07-03</date>
<start>1100</start>
<end>1500</end>
<id>195767B</id>
<purpose>Customer tour</purpose>
<fuel>80</fuel>
<cost>120</cost>
</car>
<car>
<reg>1ADA-095</reg>
<date>2006-07-10</date>
<start>27675</start>
<end>27700</end>
<id>234100K</id>
<purpose>private</purpose>
</car>
<car>
<reg>1ADA-095</reg>
<date>2006-07-11</date>
<start>27700</start>
<end>27710</end>
<id>234100K</id>
<purpose>private</purpose>
</car>
<car>
<reg>1ADA-095</reg>
<date>2006-07-11</date>
<start>27710</start>
<end>27730</end>
<id>234100K</id>
<purpose>private</purpose>
<fuel>50</fuel>
<cost>70.5</cost>
</car>
<car>
<reg>1CPP-101</reg>
<date>2006-07-21</date>
<start>30054</start>
<end>30090</end>
<id>101001A</id>
<purpose>Service call</purpose>
<fuel>25.5</fuel>
<cost>32.3</cost>
</car>
<car>
<reg>1BSC-303</reg>
<date>2006-07-09</date>
<start>45171</start>
<end>45221</end>
<id>100101B</id>
<purpose>Test drive</purpose>
</car>
<car>
<reg>1BSC-303</reg>
<date>2006-07-10</date>
<start>45221</start>
<end>45250</end>
<id>100101B</id>
<purpose>Car service</purpose>
</car>
<car>
<reg>1BSC-303</reg>
<date>2006-07-11</date>
<start>45250</start>
<end>45300</end>
<id>100101B</id>
<purpose>private</purpose>
</car>
<car>
<reg>1BSC-303</reg>
<date>2006-07-11</date>
<start>45300</start>
<end>45375</end>
<id>100101B</id>
<purpose>demo</purpose>
<fuel>60</fuel>
<cost>75.5</cost>
</car>
<car>
<reg>1BSC-303</reg>
<date>2006-07-11</date>
<start>45375</start>
<end>45420</end>
<id>100101B</id>
<purpose>Service call</purpose>
</car>
</vehicle>

My XSD file

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:element name="vehicle">
<xs:complexType>
<xs:sequence>
<xs:element ref="car" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="car">
<xs:complexType>
<xs:sequence>
<xs:element ref="reg"/>
<xs:element ref="date"/>
<xs:element ref="start"/>
<xs:element ref="end"/>
<xs:element ref="id"/>
<xs:element ref="purpose"/>
<xs:element ref="fuel" minOccurs="0"/>
<xs:element ref="cost" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="reg">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs: pattern value="1[a-z][a-z][a-z]-[0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

<xs:element name="date" type="xs:gYear"/>

<xs:element name="start" type="xs:integer"/>

<xs:element name="end" type="xs:integer" />

<xs:element name="id">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs: pattern value="[0-9][0-9][0-9][0-9][0-9][0-9][a-z]" />
</xs:restriction>
</xs:simpleType>
</xs:element>

<xs:element name="purpose" type="xs:string"/>

<xs:element name="fuel" type="xs:decimal" />

<xs:element name="cost" type="xs:decimal" />

</xs:schema>
 
Back
Top