Well, it's official: I'm thick. I have been programming years, but have never had to define an XML schema before and it is driving me up the wall. Despite looking at tens of examples, I just can't get the syntax right for defining an mandatory attribute on an element with the restriction that the attribute must be a number between 1 and 100.
I can't even get the following simpler example to work, which simply states the attribute must be a positive integer. The schema doesn't report any errors with this but when I try to use the attribute in an XML document, I get an error saying that the attribute is not defined.
This is my schema:
<xs:complexType name="ArtworkType">
<xs:sequence>
<xs:element name="title" type="xs:string"/>
</xs:sequence>
<xs:attribute name="ID" type="MyType2" use="required"/>
</xs:complexType>
And this is my XML document:
<artworks
xmlns="http://www.fourthwish.co.uk/data/Artworks.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.fourthwish.co.uk/data/Artworks.xsd Artworks.xsd"
<artwork ID="0">
<title>Title String</title>
</artwork>
</artworks>
<xs:attribute name="MyType2" type="xs:positiveInteger"/>
Please help before I go mad.
Kind wishes, Patrick