Noob XSD question

Discussion in 'XML' started by Alfie Noakes, Nov 8, 2008.

  1. Alfie Noakes

    Alfie Noakes Guest

    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
    <field> element 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
    Alfie Noakes, Nov 8, 2008
    #1
    1. Advertising

  2. Alfie Noakes wrote:
    > 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
    > <field> element 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

    > <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/
    Martin Honnen, Nov 8, 2008
    #2
    1. Advertising

  3. Alfie Noakes

    Alfie Noakes Guest

    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.





    >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
    >
    >> <xs:complexType name="fieldtype">
    >> <xs:simpleContent>
    >> <xs:extension base="xs:string">

    >
    >here instead of xs:string as the base type.
    Alfie Noakes, Nov 8, 2008
    #3
  4. Martin Honnen, Nov 9, 2008
    #4
  5. Alfie Noakes

    Alfie Noakes Guest

    Thanks for the info.

    :)


    On Sun, 09 Nov 2008 12:29:08 +0100, Martin Honnen <>
    wrote:

    >Alfie Noakes wrote:
    >
    >> 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
    Alfie Noakes, Nov 9, 2008
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Markus
    Replies:
    1
    Views:
    1,094
    Markus
    Nov 22, 2005
  2. Rick Razzano

    XSD document for XSD defintion

    Rick Razzano, Sep 26, 2003, in forum: XML
    Replies:
    1
    Views:
    481
    C. M. Sperberg-McQueen
    Sep 26, 2003
  3. Replies:
    1
    Views:
    854
    Martin Honnen
    Jan 14, 2004
  4. Peter Aberline

    xsd:any as a child of xsd:all

    Peter Aberline, Apr 5, 2004, in forum: XML
    Replies:
    0
    Views:
    783
    Peter Aberline
    Apr 5, 2004
  5. Bernd Oninger
    Replies:
    1
    Views:
    523
    Henry S. Thompson
    Jun 30, 2004
Loading...

Share This Page