xml document validation againsta schema
---------------------------------------

                 Key: XERCESC-1736
                 URL: https://issues.apache.org/jira/browse/XERCESC-1736
             Project: Xerces-C++
          Issue Type: Bug
          Components: Validating Parser (DTD), Validating Parser (Schema) 
(Xerces 1.5 or up only)
    Affects Versions: 2.7.0
         Environment: Windows XP professional
Visual Studio 2005
            Reporter: Denis Tkachov


Instances of both  XercesDOMParser and  SAX2XMLReader threat all the documents 
as valid even if a document does not match schema provided.
In order if document does not match schema provided the library does not throw 
exception and getErrorCount method of the parser returns zero.
So it seems to be a bug in the library.
 As example you can try this code: 
http://xml.apache.org/xerces-c/program-dom.html#ConstructXercesDOMParser

Below are provided scheme and document (error marked with "does not match 
schema" comment) that reproduces error:

datasetSchema.xsd:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
        <xs:element name="DataObject">
                <xs:complexType>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element name="MasterDataTable">
                                        <xs:complexType>
                                                <xs:sequence>
                                                        <xs:element name="key" 
type="xs:int"/>
                                                        <xs:element name="name" 
type="xs:string"/>
                                                        <xs:element 
name="surname" type="xs:string"/>
                                                </xs:sequence>
                                        </xs:complexType>
                                </xs:element>
                                <xs:element name="ChildDataTable">
                                        <xs:complexType>
                                                <xs:sequence>
                                                        <xs:element name="key" 
type="xs:int"/>
                                                        <xs:element name="age" 
type="xs:string"/>
                                                        <xs:element name="info" 
type="xs:string"/>
                                                </xs:sequence>
                                        </xs:complexType>
                                </xs:element>
                        </xs:choice>
                </xs:complexType>
        </xs:element>
</xs:schema>

output.xml:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<DataObject xmlns="http://creopod.com/DataObject.xsd"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"; 
xs:noNamespaceSchemaLocation="datasetSchema.xsd">

  <MasterDataTable>
    <key>1</key>
    <name>Vasya</name>
    <surname>Pupkin</surname>
  </MasterDataTable>

  <MasterDataTable>
    <key>2</key>
    <name>Petro</name>
    <surname>Kukurudza</surname>
  </MasterDataTable>

  <ChildDataTable>
    <key1>1</key1> <!-- does not match schema-->
    <age>23</age>
    <info>famous guy</info>
  </ChildDataTable>

  <ChildDataTable>
    <key1>2</key1> <!-- does not match schema-->
    <age>29</age>
    <info></info>
  </ChildDataTable>

</DataObject>


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to