OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   trying to do XML Schema validation with Xerces-J 2.4.0, does not complai

[ Lists Home | Date Index | Thread Index ]
  • To: xml-dev@lists.xml.org
  • Subject: trying to do XML Schema validation with Xerces-J 2.4.0, does not complain about unique constraits when using the xs:key feature
  • From: Bill Riegel <BRiegel@lgc.com>
  • Date: Wed, 14 May 2003 08:59:17 -0500

I can get it to complain about structural error's. i.e. have a child element
in the instance document but not defined in the XML Schema. 

But when I try to create in in-valid key constraint, i.e.
DataSet/WellEntireData/WellEntire/wellid is not unique, it does not throw an
exception. ( Note: xmlspy does ) 

Instance document:

<?xml version="1.0"?>

<DataSet xmlns=http://www.lgc.com/schema/OpenWorksData/2003
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";  
   xsi:schemaLocation="http://www.lgc.com/schema/OpenWorksData/2003
            Adt_OW_Stratigraphy2_Schema.xsd">
  <WellEntireData>
    <WellEntire>
      <wellid>3567</wellid>
    </WellEntire>
    <WellEntire>
      <wellid>3197</wellid>
    </WellEntire>
    <WellEntire>
      <wellid>3198</wellid>
     </WellEntire>
    <WellEntire>
      <wellid>3567</wellid>
    </WellEntire>
 </WellEntireData>
</DataSet>


XML Schema file.
 
<?xml version="1.0"?>
<xs:schema targetNamespace="http://www.lgc.com/schema/OpenWorksData/2003";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns="http://www.lgc.com/schema/OpenWorksData/2003";
elementFormDefault="qualified" attributeFormDefault="unqualified">
  <!--This XML Schema defines an ADT XML File. It Defines the DataModel
OpenWorksData and partitionName Stratigraphy2-->
  <xs:element name="DataSet">
    <xs:complexType>
      <xs:all>
        <xs:element name="WellEntireData" type="WellEntireData_Type"
minOccurs="0">
          <xs:key name="WellEntire_InHierarchy_Key_Definition">
            <xs:selector xpath="WellEntire"/>
            <xs:field xpath="wellid"/>
          </xs:key>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>
   <xs:complexType name="WellEntireData_Type">
    <xs:sequence>
      <xs:group ref="WellEntire_Top_Group" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:group name="WellEntire_Top_Group">
    <xs:choice>
      <xs:element name="WellEntire" type="WellEntire_Type"/>
    </xs:choice>
  </xs:group>
  <xs:complexType name="WellEntire_Type">
    <xs:sequence>
      <xs:group ref="WellEntire_Atrributes_Group"/>
    </xs:sequence>
  </xs:complexType>
  <xs:group name="WellEntire_Atrributes_Group">
    <xs:sequence>
      <xs:element name="wellid" type="xs:integer"/>
     </xs:sequence>
  </xs:group>
  <xs:complexType name="WellEntireRef_Type">
    <xs:sequence>
      <xs:element name="wellid" type="xs:integer"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

I have set the following features:

 
parser.getXMLReader().setFeature("http://apache.org/xml/features/validation/
dynamic", true );
 
parser.getXMLReader().setFeature("http://apache.org/xml/features/validation/
schema", true );

parser.getXMLReader().setFeature("http://apache.org/xml/features/validation/
schema-full-checking", true );
 
parser.getXMLReader().setFeature("http://xml.org/sax/features/validation";,
true );
        

Am I setting the features incorrectly ?
Does the 2.4.0 version of Xerces support this feature of XML Schema ?



Bill Riegel
LandMark Graphics
713-839-3388






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS