Connecting Tech Pros Worldwide Help | Site Map

Noob XSD question

Alfie Noakes
Guest
 
Posts: n/a
#1: Nov 8 '08

I've been wrestling with this all today and just can't crack it! It's
driving me mad. Arggghhh.

Given a very simple "database type" XML file....

<database name="mydatabase">
<table name="fruit">
<row>
<field name="name">Kumquat</field>
<field name="colour">Kind of orangey</field>
</row>
<row>
<field name="name">Lychee</field>
<field name="colour">Reddish</field>
</row>
</table>
</database>


I simply cant get the XSD right to validate when the text part of the
<fieldelement is missing ( i.e. Kumquat or Lychee) Here's what I
have:


<xs:complexType name="fieldtype">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>


I've tried xs:restriction entries everywhere I can think of but
nothing works.

Someone please put me out of my misery before I go and open a vein!

Cheers,
Alfie
Martin Honnen
Guest
 
Posts: n/a
#2: Nov 8 '08

re: Noob XSD question


Alfie Noakes wrote:
Quote:
I've been wrestling with this all today and just can't crack it! It's
driving me mad. Arggghhh.
>
Given a very simple "database type" XML file....
>
<database name="mydatabase">
<table name="fruit">
<row>
<field name="name">Kumquat</field>
<field name="colour">Kind of orangey</field>
</row>
<row>
<field name="name">Lychee</field>
<field name="colour">Reddish</field>
</row>
</table>
</database>
>
>
I simply cant get the XSD right to validate when the text part of the
<fieldelement is missing ( i.e. Kumquat or Lychee)

Well what exactly do you want to specify in your schema? A minimum
length? Then define a simpleType with the minimum length and use that
simple type name
Quote:
<xs:complexType name="fieldtype">
<xs:simpleContent>
<xs:extension base="xs:string">
here instead of xs:string as the base type.



--

Martin Honnen
http://JavaScript.FAQTs.com/
Alfie Noakes
Guest
 
Posts: n/a
#3: Nov 8 '08

re: Noob XSD question




Great clue! Thanks very much for the help.
Here's what I got...

<xs:simpleType name="rawdata">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>

<xs:complexType name="fieldtype">
<xs:simpleContent>
<xs:extension base="rawdata">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>



I don't suppose you could give me some pointers regarding how to
approach making sure the field element name attribute is unique within
a table? Looks like I'm in for a fun evening trying to sort that one
out.




Quote:
>Well what exactly do you want to specify in your schema? A minimum
>length? Then define a simpleType with the minimum length and use that
>simple type name
>
Quote:
><xs:complexType name="fieldtype">
> <xs:simpleContent>
> <xs:extension base="xs:string">
>
>here instead of xs:string as the base type.
Martin Honnen
Guest
 
Posts: n/a
#4: Nov 9 '08

re: Noob XSD question


Alfie Noakes wrote:
Quote:
I don't suppose you could give me some pointers regarding how to
approach making sure the field element name attribute is unique within
a table? Looks like I'm in for a fun evening trying to sort that one
out.
Use an xs:unique constraint on the table, see
http://www.w3.org/TR/xmlschema-0/#specifyingUniqueness

--

Martin Honnen
http://JavaScript.FAQTs.com/
Alfie Noakes
Guest
 
Posts: n/a
#5: Nov 9 '08

re: Noob XSD question




Thanks for the info.

:-)


On Sun, 09 Nov 2008 12:29:08 +0100, Martin Honnen <mahotrash@yahoo.de>
wrote:
Quote:
>Alfie Noakes wrote:
>
Quote:
>I don't suppose you could give me some pointers regarding how to
>approach making sure the field element name attribute is unique within
>a table? Looks like I'm in for a fun evening trying to sort that one
>out.
>
>Use an xs:unique constraint on the table, see
>http://www.w3.org/TR/xmlschema-0/#specifyingUniqueness
Closed Thread


Similar .NET Framework bytes