[prev in list] [next in list] [prev in thread] [next in thread]
List: xerces-c-dev
Subject: [jira] Closed: (XERCESC-1516) identity constraint volation not caught when xpath contains default na
From: "Gareth Reakes (JIRA)" <xerces-c-dev () xml ! apache ! org>
Date: 2005-10-14 20:32:45
Message-ID: 1908939652.1129321965459.JavaMail.jira () ajax ! apache ! org
[Download RAW message or body]
[ http://issues.apache.org/jira/browse/XERCESC-1516?page=all ]
Gareth Reakes closed XERCESC-1516:
----------------------------------
Resolution: Invalid
Agreed David. Andrew, feel free to mail the users list if you would like any more \
explanation.
Gareth
> identity constraint volation not caught when xpath contains default namespace
> -----------------------------------------------------------------------------
>
> Key: XERCESC-1516
> URL: http://issues.apache.org/jira/browse/XERCESC-1516
> Project: Xerces-C++
> Type: Bug
> Components: Validating Parser (Schema) (Xerces 1.5 or up only)
> Versions: 2.6.0
> Environment: Windows XP
> Reporter: Andrew Fang
>
> The following schema contains an identity constraint on the uniqueness of ISBN \
> number. However, no error is reported when duplicated entries for ISBN exist. The \
> problem seem to be that XPath parser does not parse default namespace correctly. If \
> a prefix is added (xmlns:x="....") and use the prefix in xpath expression (e.g. \
> <xsd:selector xpath="x:Book"/> ...), the violation is found. The following is a \
> possible fix for the problem: in XercesXpath.cpp ln 510 and 585, change
> if (scopeContext && !aToken == -1) {
> prefix = stringPool->getValueForId(aToken);
> uri = scopeContext->getNamespaceForPrefix(prefix);
> }
> to
> if (scopeContext) {
> if(aToken == -1) { // no prefix, must be default namespace
> prefix = XMLUni::fgZeroLenString;
> } else {
> prefix = stringPool->getValueForId(aToken);
> }
> uri = scopeContext->getNamespaceForPrefix(prefix);
> }
> ------- Schema ---------------
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.publishing.org"
> xmlns="http://www.publishing.org"
> elementFormDefault="qualified">
> <xsd:element name="BookCatalogue">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="Book" minOccurs="1" maxOccurs="unbounded">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="Title" type="xsd:string" minOccurs="1" maxOccurs="1"/>
> <xsd:element name="Author" type="xsd:string" minOccurs="1" maxOccurs="1"/>
> <xsd:element name="ISBN" type="xsd:string" minOccurs="1" maxOccurs="1"/>
> <xsd:element name="Publisher" type="xsd:string" minOccurs="1" \
> maxOccurs="1"/>
> <xsd:element name="Date" type="xsd:string" minOccurs="1" maxOccurs="1"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:unique name="ISBNnumber">
> <xsd:selector xpath="Book"/>
> <xsd:field xpath="ISBN"/>
> </xsd:unique>
> </xsd:element>
> </xsd:schema>
> --------- xml instance -----------
> <?xml version="1.0" encoding="UTF-8"?>
> <BookCatalogue
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns="http://www.publishing.org"
> xsi:schemaLocation="http://www.publishing.org idc001.nogen.xsd">
> <Book>
> <Title>My Life and Times</Title>
> <Author>Paul McCartney</Author>
> <ISBN>43892</ISBN>
> <Publisher>McMillin Publishing</Publisher>
> <Date>1998</Date>
> </Book>
> <Book>
> <Title>My Life and Times</Title>
> <Author>Paul McCartney</Author>
> <ISBN>43892</ISBN>
> <Publisher>McMillin Publishing</Publisher>
> <Date>1998</Date>
> </Book>
> </BookCatalogue>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic