Help with xs:substitutionGroup and MSXML

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Val Melamed

    Help with xs:substitutionGroup and MSXML

    Hi all,

    These days I'm playing with schemas and SOM from MSXML. To learn it I used
    the excellent tutorial from Mr.Costello:
    http://www.xfront.com/xml-schema.html. while working through the labs I
    stumbled upon a problem with substitutionGro up-s (Lab 9).

    Below you can find both the schema and a sample document to test it.
    Unfortunately, MSXML doesn't like the document and ends up with an error:
    "### <guarantee>life time warranty</guarantee>(11) error: Element content
    is invalid according to the DTD/Schema." Can someone please take a look at
    it and comment on the problem. May be I am doing something wrong here or
    may be someone can confirm that this is MSXML validation bug.

    Thank you!
    Val Melamed

    The schema:
    -------------------------------------------------------------------------------
    <?xml version="1.0"?>
    <xsd:schema xmlns:xsd="http ://www.w3.org/2001/XMLSchema"
    targetNamespace ="http://www.juicers.org "
    xmlns="http://www.juicers.org "
    elementFormDefa ult="qualified" >
    <xsd:element name="warranty" type="xsd:strin g"/>
    <xsd:element name="guarantee " substitutionGro up="warranty"
    type="xsd:strin g"/>
    <xsd:complexTyp e name="juiceAppl iance">
    <xsd:all>
    <xsd:element name="descripti on" type="xsd:strin g"/>
    <xsd:element ref="warranty" minOccurs="0"/>
    <xsd:element name="name" type="xsd:strin g"/>
    <xsd:element name="image" type="imageType "/>
    <xsd:element name="weight" minOccurs="0">
    <xsd:complexTyp e>
    <xsd:simpleCont ent>
    <xsd:extensio n base="xsd:posit iveInteger">
    <xsd:attribut e name="units" type="xsd:strin g"
    fixed="pounds"/>
    </xsd:extension>
    </xsd:simpleConte nt>
    </xsd:complexType >
    </xsd:element>
    <xsd:element name="cost" minOccurs="0">
    <xsd:complexTyp e>
    <xsd:simpleCont ent>
    <xsd:extensio n base="money">
    <xsd:attribut e name="currency" use="required">
    <xsd:simpleType >
    <xsd:restrictio n base="xsd:strin g">
    <xsd:enumeratio n value="USD"/>
    <xsd:enumeratio n value="CAD"/>
    </xsd:restriction >
    </xsd:simpleType>
    </xsd:attribute>
    </xsd:extension>
    </xsd:simpleConte nt>
    </xsd:complexType >
    </xsd:element>
    <xsd:element name="retailer" type="xsd:anyUR I"/>
    </xsd:all>
    <xsd:attribut e name="id" type="xsd:ID" use="required"/>
    <xsd:attribut e name="electric" type="xsd:boole an" use="required"/>
    <xsd:attribut e name="type" use="required">
    <xsd:simpleType >
    <xsd:restrictio n base="xsd:strin g">
    <xsd:enumeratio n value="press"/>
    <xsd:enumeratio n value="gear"/>
    <xsd:enumeratio n value="centrifu gal"/>
    </xsd:restriction >
    </xsd:simpleType>
    </xsd:attribute>
    </xsd:complexType >
    <xsd:element name="juicers">
    <xsd:complexTyp e>
    <xsd:sequence >
    <xsd:element name="juicer" type="juiceAppl iance"
    minOccurs="0" maxOccurs="unbo unded"/>
    </xsd:sequence>
    </xsd:complexType >
    </xsd:element>
    <xsd:simpleTy pe name="money">
    <xsd:restrictio n base="xsd:decim al">
    <xsd:fractionDi gits value="2"/>
    </xsd:restriction >
    </xsd:simpleType>
    <xsd:simpleTy pe name="imageType ">
    <xsd:restrictio n base="xsd:strin g">
    <xsd:pattern value="(.)+\.(g if|jpg|jpeg|bmp )"/>
    </xsd:restriction >
    </xsd:simpleType>
    </xsd:schema>
    -------------------------------------------------------------------------------
    The document:
    -------------------------------------------------------------------------------
    <?xml version="1.0"?>
    <juicers xmlns="http://www.juicers.org "
    xmlns:xsi="http ://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocat ion="http://www.juicers.org
    C:\xml-schemas\labs\la b09\answer\juic ers.xsd">
    <juicer id="mighty-oj" electric="false " type="press">
    <name>OJ Home Juicer</name>
    <image>images\m ighty_oj.gif</image>
    <cost currency="USD"> 41.95</cost>
    <description>Th ere&apos;s just no substitute for a properly
    squeezed orange in the morning. So delicate and refreshing. The finest
    hotels use mechanical juicers of this type for their most discriminating
    guests. This is the largest selling juicer of its kind. It&apos;s a
    beautiful little all-metal piece in baked enamel and polished chrome; it
    even won the Frankfurt Fair Award for its design. Uses no electricity and
    produces no non-recyclable waste as do frozen juices.</description>
    <guarantee>life time warranty</guarantee>
    <retailer>htt p://www.thewhitewha le.com/oj.htm</retailer>
    </juicer>
    <juicer id="champion" electric="true" type="gear">
    <cost currency="USD"> 239.00</cost>
    <retailer>htt p://www.grainsandgr eens.com/juicerparts.htm l</retailer>
    <description>Th e Champion Juicer is the answer to every juicing
    problem. Because it operates on the mastication process principle, the
    Champion chews the fibers and breaks up the cells of vegetables and fruits.
    This give you more fiber, enzymes, vitamins and trace minerals. The juice
    will be a darker, richer color, with a sweeter, richer more full-bodied
    flavor.</description>
    <name>Champio n Juicer</name>
    <image>images\c hampion.gif</image>
    </juicer>
    <juicer id="green-power" electric="true" type="gear">
    <name>Green Power Gold Juice Extractor</name>
    <image>images\g reenPower.jpg</image>
    <description>Yo u are not What You Eat, But What you Absorb. The
    rate of absorption of juice has never been considered a factor in comparing
    juicers. With the introduction of Green Power&apos;s magnetic Twin Gear
    press, this has now changed. Experiments conducted by the Green Power Co.
    Research and Development Dept. show the rate of absorption of green juice
    using dual gear extraction is up to five times greater than using
    centrifugal extraction.</description>
    <cost currency="USD"> 459.99</cost>
    <retailer>htt p://www.discountjui cers.com/greencomplete.h tml</retailer>
    </juicer>
    <juicer id="juiceman-jr" electric="true" type="centrifug al">
    <description>Th e Juiceman Jr. juicer is the little brother to the
    Juiceman II juicer that is seen on television. The Juiceman Jr. is a pulp
    ejection juicer that allows you to juice continuously without having to stop
    and clean the machine. Made popular by Jay Kordich, the Juiceman series of
    juicers have been a popular addition to millions of households all across
    this nation. This machine comes ready to use out of the box</description>
    <warranty>1 yr. Limited Warranty </warranty>
    <name>Juicema n Jr.</name>
    <image>images\j uiceman.jpg</image>
    <weight>10</weight>
    <cost currency="USD"> 82.00</cost>
    <retailer>htt p://www.juicebars.c om/juicers/jm1.htm</retailer>
    </juicer>
    <juicer id="omega" electric="true" type="centrifug al">
    <description>Th is heavy-duty, American-made juicer has a powerful
    GE motor that spins at 3,600 rpm to extract 20% - 30% more juice than pulp
    ejector models (according to independent laboratory tests). Large capaciy
    bowl hold a ful 1-2 quarts of fruits or vegetables - compared to just one
    pint for many brands. Easy-cleaning design with lift out disposable
    filter.</description>
    <name>Omega Juicer</name>
    <image>images\o mega.jpg</image>
    <cost currency="USD"> 234.00</cost>
    <retailer>htt p://www.boschcanada .com/omega.htm</retailer>
    </juicer>
    <juicer id="wheateena" electric="true" type="gear">
    <description>Wh eatgrass juice contains 70% "crude" chlorophyll.
    Chlorophyll by definition being the green pigment in plants. It is
    considered the "blood" of plants, due to the similarity to our blood in
    molecular structure. This juicer extracts the juice out of the blades of
    wheatgrass. Normal fruit and vegetable juicers will not juice
    wheatgrass</description>
    <guarantee>Moto r Guarantee: For Home Use: one (1) year. For
    Commercial Use: six (6) months.</guarantee>
    <name>Wheatee na Wheatgrass Juicer</name>
    <image>images\w heateena.jpg</image>
    <weight>46</weight>
    <cost currency="USD"> 639.99</cost>
    <retailer>htt p://www.rawfoods.co m/marketplace/heavyduty.html</retailer>
    </juicer>
    </juicers>

    -------------------------------------------------------------------------------


  • Henry S. Thompson

    #2
    Re: Help with xs:substitution Group and MSXML

    Works for me with XSV [1]. . .

    ht

    [1] http://www.ltg.ed.ac.uk/~ht/xsv-status.html
    --
    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: ht@inf.ed.ac.uk
    URL: http://www.ltg.ed.ac.uk/~ht/
    [mail really from me _always_ has this .sig -- mail without it is forged spam]

    Comment

    Working...