XSD; Defining problem; Multimple Elements

Discussion in 'XML' started by R.Schuetze@gmail.com, Nov 30, 2005.

  1. Guest

    Hallo,
    I'm working on an XSD schema for an 3D Point. The XML struktur of the
    point is the following:
    <Point name="6" target="Retro" type="TP" unit="m">
    <param name="X" value="0.000"/>
    <param name="Y" value="0.000"/>
    <param name="Z" value="0.000"/>
    </Point>

    The user have to fill use all three coordinates (X,Y,Z). Does somebody
    haven an idea how I can implement the schema?
    Thanks
    Rainer

    My first implemention of the Point was, but this would work, the
    validation of the XSD failed.

    <xs:element name="Point" type="pointCoordType">
    ...
    </xs:element>
    <xs:complexType name="pointCoordType">
    <xs:all>
    <xs:element name="param">
    <xs:complexType>
    <xs:attribute name="name" use="required" type="xs:string"
    fixed="X"/>
    <xs:attribute name="value" use="required" type="xs:double" />
    ...
    </xs:complexType>
    </xs:element>
    <xs:element name="param">
    <xs:complexType>
    <xs:attribute name="name" use="required" type="xs:string"
    fixed="Y"/>
    <xs:attribute name="value" use="required" type="xs:double" />
    ...
    </xs:complexType>
    </xs:element>
    ...
    </xs:all>
    </xs:complexType>
     
    , Nov 30, 2005
    #1
    1. Advertising

  2. wrote:
    > I'm working on an XSD schema for an 3D Point. The XML struktur of the
    > point is the following:
    > <Point name="6" target="Retro" type="TP" unit="m">
    > <param name="X" value="0.000"/>
    > <param name="Y" value="0.000"/>
    > <param name="Z" value="0.000"/>
    > </Point>


    Why not make it

    <Point name="6" target="Retro" type="TP" unit="m">
    <xparam value="0.000"/>
    <yparam value="0.000"/>
    <zparam value="0.000"/>
    </Point>
    ?

    --
    Johannes Koch
    Spem in alium nunquam habui praeter in te, Deus Israel.
    (Thomas Tallis, 40-part motet)
     
    Johannes Koch, Dec 1, 2005
    #2
    1. Advertising

  3. Johannes Koch writes:

    > R.Schuetze wrote:
    >> I'm working on an XSD schema for an 3D Point. The XML struktur of the
    >> point is the following:
    >> <Point name="6" target="Retro" type="TP" unit="m">
    >> <param name="X" value="0.000"/>
    >> <param name="Y" value="0.000"/>
    >> <param name="Z" value="0.000"/>
    >> </Point>

    >
    > Why not make it
    >
    > <Point name="6" target="Retro" type="TP" unit="m">
    > <xparam value="0.000"/>
    > <yparam value="0.000"/>
    > <zparam value="0.000"/>
    > </Point>
    > ?


    Something along those lines is certainly the best way to go.

    If you R.Schuetze _must_ have the original structure, a verbose
    indentity-constraint solution will work -- add the following to the
    element declaration for Point

    <xs:keyref refer="dims" name="krx">
    <xs:selector xpath="."/>
    <xs:field xpath="@x"/>
    </xs:keyref>
    <xs:keyref refer="dims" name="kry">
    <xs:selector xpath="."/>
    <xs:field xpath="@y"/>
    </xs:keyref>
    <xs:keyref refer="dims" name="krz">
    <xs:selector xpath="."/>
    <xs:field xpath="@z"/>
    </xs:keyref>
    <xs:key name="dims">
    <xs:selector xpath="param"/>
    <xs:field xpath="@name"/>
    </xs:key>

    and add the following to the type defintion used for Point:

    <xs:attribute name="x" fixed="X"/>
    <xs:attribute name="y" fixed="Y"/>
    <xs:attribute name="z" fixed="Z"/>

    ht
    --
    Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
    Half-time member of W3C Team
    2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
    Fax: (44) 131 650-4587, e-mail:
    URL: http://www.ltg.ed.ac.uk/~ht/
    [mail really from me _always_ has this .sig -- mail without it is forged spam]
     
    Henry S. Thompson, Dec 1, 2005
    #3
  4. JamesSmithMz Guest

    Hi Henry S. Thompson,

    thanks for the excellent way to go. This works well for me.
    Regards
    Rainer
     
    JamesSmithMz, Dec 2, 2005
    #4
    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,192
    Markus
    Nov 22, 2005
  2. Francesc Guim Bernat

    Defining composed keys [XSD]

    Francesc Guim Bernat, Jul 29, 2003, in forum: XML
    Replies:
    0
    Views:
    486
    Francesc Guim Bernat
    Jul 29, 2003
  3. johny smith
    Replies:
    8
    Views:
    450
    Peter Koch Larsen
    Jul 2, 2004
  4. Seago
    Replies:
    3
    Views:
    2,697
    C. M. Sperberg-McQueen
    Sep 26, 2006
  5. tschulken
    Replies:
    0
    Views:
    372
    tschulken
    Apr 19, 2007
Loading...

Share This Page