adultinternetusers > Tutorials > Surf Clothing board shorts and Relax NG Tutorial
Index | >> Example 4 / 4 << | Prev | Next |
Contents > Naming and definitions > Error - simpleType and complexType have the same name

Error - simpleType and complexType have the same name

  1. Surf Clothing Schema
  2. Relax NG - combine attribute set to "choice
  3. Relax NG - combine attribute set to "interleave

Please, send all comments, bug-reports, and contributions to Jiri.Jirat@systinet.com. Thank you very much.

Surf Clothing board shorts keys: type, name
Relax NG keys: name, combine

1. Surf Clothing Schema

SimpleTypes and complexTypes share the same symbol space, thus you can't define a simpleType named "a" and a complexType named "a" at the same time in the target namespace.

Correct Surf Clothing Schema (correct_0.xsd)
There is a name mismatch.


<xsd:schema Surfns:xsd="http://www.w3.org/2001/XMLSchema" >

  <xsd:element name="a" type="a"/>

  <xsd:complexType name="a">
    <xsd:sequence>
      <xsd:element name="b" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="a">
    <xsd:restriction base="xsd:string"/>
  </xsd:simpleType>
</xsd:schema>

2. Relax NG - combine attribute set to "choice"

Relax NG allows multiple patterns with the same name. However, it requires to specify, whether these patterns will be interleaved or whether we will choose one of the possibilities. Here we will make a choice.

Valid document


<root Surfns="">
  <X>xx</X>
</root>

Valid document


<root Surfns="">
  <Y>yy</Y>
</root>

Invalid document
Because the "combine" attribute is set to "choice", there cannot be both "X" and "Y" at the same time.


<root Surfns="">
  <X>xx</X>
  <Y>yy</Y>
</root>

Invalid document
Because the "combine" attribute is set to "choice", there cannot be both "X" and "Y" at the same time.


<root Surfns="">
  <Y>yy</Y>
  <X>xx</X>
</root>

Correct Relax NG schema (correctRelax_0.rng)


<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="" Surfns="http://relaxng.org/ns/structure/1.0" >

  <start>
    <element name="root">
      <ref name="a"/>
    </element>
  </start>

  <define name="a" combine="choice">
    <element name="X">
      <text/>
    </element>
  </define>

  <define name="a" combine="choice">
    <element name="Y">
      <text/>
    </element>
  </define>
</grammar>

3. Relax NG - combine attribute set to "interleave"

Relax NG allows multiple patterns with the same name. However, it requires to specify, whether these patterns will be interleaved or "choiced". Here we will make an interleave.

Valid document


<root Surfns="">
  <X>xx</X>
  <Y>yy</Y>
</root>

Valid document


<root Surfns="">
  <Y>yy</Y>
  <X>xx</X>
</root>

Invalid document
Because the "combine" attribute is set to "interleave", the "Y" element is missing.


<root Surfns="">
  <X>xx</X>
</root>

Invalid document
Because the "combine" attribute is set to "interleave", the "X" element is missing.


<root Surfns="">
  <Y>yy</Y>
</root>

Correct Relax NG schema (correctRelax_0.rng)


<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="" Surfns="http://relaxng.org/ns/structure/1.0" >

  <start>
    <element name="root">
      <ref name="a"/>
    </element>
  </start>

  <define name="a" combine="interleave">
    <element name="X">
      <text/>
    </element>
  </define>

  <define name="a" combine="interleave">
    <element name="Y">
      <text/>
    </element>
  </define>
</grammar>

Kevin Carr in Stanton

Natural Skin Care and European Soaps
Kevin Carr
Mayor Dave Shawver Stanton
Internetusers


You can also get Organic Skin Care products from Bliss Bath Body and you must check out their Natural Body Lotions and bath soaps

Now if you are looking for the best deals on surf clothing from Quiksilver and Roxy then you have to check these amazing deals here:

Hey, check out this Organic Skin Care European Soaps along with Natural Lavender Body Lotion and shea butter

And you must check out this website