Uploaded image for project: 'XMLBeans'
  1. XMLBeans
  2. XMLBEANS-38

Does not support xs:key (keyRef NoIllegalEntries)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Invalid
    • Version 1, Version 1.0.3, Version 2 Beta 1, Version 2
    • unspecified
    • None
    • None
    • Linux J2SEE 1.4.1_05

    Description

      XMLBeans does not support the <xs:key name=""> feature used in XSD Schema. I have tried multiple schemas using this feature and when I go to validate an XML document, I get the same error:

      Key '<the-name-of-your-key' not found (keyRef NoIllegalEntries)

      I am sure this is valid syntax as XML Spy and other editors are ok with the key ref tag as this is supported within XSD.

      I have included a sample XSD and XML document that includes these values.

      <?xml version="1.0"?>
      <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:element name="supermarket">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="aisle" maxOccurs="unbounded">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="item" maxOccurs="unbounded">
      <xsd:complexType>
      <xsd:simpleContent>
      <xsd:extension base="xsd:string">
      <xsd:attribute name="code" type="xsd:positiveInteger"/>
      <xsd:attribute name="quantity" type="xsd:positiveInteger"/>
      <xsd:attribute name="price" type="xsd:decimal"/>
      </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
      </xsd:element>
      </xsd:sequence>

      <!-- Attribute Of Aisle -->
      <xsd:attribute name="name" type="xsd:string"/>
      <xsd:attribute name="number" type="xsd:positiveInteger"/>
      <!-- Of Aisle -->

      </xsd:complexType>

      <xsd:keyref name="NoIllegalEntries" refer="itemKey">
      <xsd:selector xpath="item"/>
      <xsd:field xpath="@code"/>
      </xsd:keyref>
      </xsd:element>
      <xsd:element name="items">
      <xsd:complexType>
      <xsd:sequence>
      <xsd:element name="item" maxOccurs="unbounded">
      <xsd:complexType>
      <xsd:simpleContent>
      <xsd:extension base="xsd:string">
      <xsd:attribute name="code" type="xsd:positiveInteger"/>
      </xsd:extension>
      </xsd:simpleContent>
      </xsd:complexType>
      </xsd:element>
      </xsd:sequence>
      </xsd:complexType>
      </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:string"/>
      </xsd:complexType>
      <xsd:key name="itemKey">
      <xsd:selector xpath="items/item"/>
      <xsd:field xpath="@code"/>
      </xsd:key>
      </xsd:element>
      </xsd:schema>

      ***********************
      and sample XML
      ***********************
      <?xml version="1.0" encoding="UTF-8"?>
      <!--Sample XML file generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)-->
      <supermarket xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\tmp\Supermarket.xsd" name="String">
      <aisle name="String" number="2">
      <item code="1234" quantity="2" price="3.1415926535897932384626433832795">String</item>
      </aisle>

      <items>
      <item code="1234">Java</item>
      </items>
      </supermarket>

      Attachments

        Activity

          People

            Unassigned Unassigned
            dkurry Drew Kurry
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: