Mihran Hovsepyan created XERCESC-2017:
-----------------------------------------

             Summary: Xerces-C++ is not always able to handle W3C standard 
keyref
                 Key: XERCESC-2017
                 URL: https://issues.apache.org/jira/browse/XERCESC-2017
             Project: Xerces-C++
          Issue Type: Bug
          Components: Validating Parser (XML Schema)
    Affects Versions: 3.1.1
            Reporter: Mihran Hovsepyan


I use *Xerces-C++ 3.1.1* to validate schema of xml files. Bellow is example of 
some such file.

        <CONFIG>
                <DBS>
                        <DB ID="D">
                                <!--...-->
                        </DB>
                        <VDB ID="V">
                                <!--...-->
                                <PARTS>
                                        <PART_DB ID="V1" />
                                        <PART_DB ID="V2" />
                                </PARTS>
                        </VDB>
                        <!--...-->
                </DBS>
                <HOSTS>
                        <HOST ID="host1">
                                <DBS>
                                        <DB ID="D">
                                        <!--...-->
                                        </DB>
                                        <DB ID="V1">
                                        <!--...-->
                                        </DB>
                                        <DB ID="V2">
                                        <!--...-->
                                        </DB>
                                </DBS>
                                <VDBS>
                                        <DB ID="V">
                                        <!--...-->
                                        </DB>
                                </VDBS>
                        </HOST>
                        <!--...-->
                </HOSTS>
        </CONFIG>

And in its schema the following key and keyref are defined for the root element 
`CONFIG`.

        <xsd:key name="DbIdKey">
                <xsd:selector 
xpath="./DBS/DB|./DBS/VDB|./DBS/VDB/PARTS/PART_DB" />
                <xsd:field xpath="@ID" />
        </xsd:key>
        <xsd:keyref name="DbIdRef" refer="DbIdKey">
                <xsd:selector xpath="./HOSTS/HOST/DBS/DB|./HOSTS/HOST/VDBS/DB" 
/>
                <xsd:field xpath="@ID" />
        </xsd:keyref>

So, though the file meets requirements of the schema according to *W3C* and 
some validators understand that (for instance XML validator of *MS Visual 
Studio*), *Xerces-C++ 3.1.1* unable to do that. It complains:

    identity constraint key for element 'CONFIG' not found (last_line, 
last_column_of_last_line)


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to