W3C home > Mailing lists > Public > xmlschema-dev@w3.org > January 2008

Repeating elements with fixed attribute values

From: King, Jeffrey (Mission Systems) <Jeff.King@ngc.com>
Date: Fri, 4 Jan 2008 08:29:26 -0600
Message-ID: <2A77548F22867A4B8C38F7608F3B40CC5721CF@XMBIL132.northgrum.com>
To: <xmlschema-dev@w3.org>

I have an xml document similar to this:

<root>
  <word name="one">
    <field name="field1" number="1">any string here</field>
    <field name="field2" number="2">any string here</field>
    <field name="field3" number="3">any string here</field>
    ...
  </word>
  <word name="two">
    <field name="field4" number="4">any string here</field>
    <field name="field5" number="5">any string here</field>
    <field name="field6" number="6">any string here</field>
    ...
  </word>
</root>

The attributes have fixed values.  I am struggling to create a schema
for this.

If I take this approach:

<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="1" minOccurs="1" name="word">
           <xs:complexType>
             <xs:sequence>
								
             <xs:element maxOccurs="1" minOccurs="1" name="field">
               <xs:complexType>
                  <xs:simpleContent>
                     <xs:extension base="xs:string">
                       <xs:attribute name="name" type="xs:string"
use="required" fixed="field1" />
                       <xs:attribute name="number"
type="xs:unsignedShort" use="required" fixed="1" />
                     </xs:extension>
                 </xs:simpleContent>
              </xs:complexType>
             </xs:element>
							
	<xs:element maxOccurs="1" minOccurs="1" name="field">
	     <xs:complexType>
                    <xs:simpleContent>
                       <xs:extension base="xs:string">
                          <xs:attribute name="name" type="xs:string"
use="required" fixed="field2" />
                          <xs:attribute name="number"
type="xs:unsignedShort" use="required" fixed="2" />
                       </xs:extension>
	       </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            ...
          etc.

I get an error stating: "Elements with the same name and in the same
scope must have the same type".  I'm not sure what approach to take
here.  I think this is pretty elementary, but any help with finding a
solution would be appreciated.

Thank you.

Jeffrey
Received on Friday, 4 January 2008 15:00:40 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 11 January 2011 00:15:01 GMT