You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2009/08/10 16:42:04 UTC
svn commit: r802812 - in /xerces/c/trunk: src/xercesc/internal/
tests/src/XSTSHarness/ tests/src/XSTSHarness/regression/
tests/src/XSTSHarness/regression/XERCESC-1831/
Author: amassari
Date: Mon Aug 10 14:42:03 2009
New Revision: 802812
URL: http://svn.apache.org/viewvc?rev=802812&view=rev
Log:
Before processing a schema location, remove the 0xFFFF characters present in the non-normalized attribute value (XERCESC-1831)
Added:
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xml
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xsd
Modified:
xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp
xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp
xerces/c/trunk/tests/src/XSTSHarness/ (props changed)
xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet
Modified: xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp?rev=802812&r1=802811&r2=802812&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/IGXMLScanner2.cpp Mon Aug 10 14:42:03 2009
@@ -224,7 +224,7 @@
ValueValidate = true;
}
- else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_SCHEMALOCACTION))
+ else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_SCHEMALOCATION))
{
// use anyURI as the validator
// tokenize the data and use the anyURI data for each piece
@@ -239,7 +239,7 @@
ValueValidate = false;
tokenizeBuffer = true;
}
- else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION))
+ else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCATION))
{
attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI);
//We should validate this value however
@@ -1711,9 +1711,9 @@
const XMLCh* valuePtr = curPair->getValue();
const XMLCh* suffPtr = &rawPtr[colonInd + 1];
- if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_SCHEMALOCACTION))
+ if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_SCHEMALOCATION))
parseSchemaLocation(valuePtr);
- else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION))
+ else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCATION))
resolveSchemaGrammar(valuePtr, XMLUni::fgZeroLenString);
if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_TYPE)) {
@@ -1753,8 +1753,11 @@
if (size % 2 != 0 ) {
emitError(XMLErrs::BadSchemaLocation);
} else {
+ // We need a buffer to normalize the attribute value into
+ XMLBuffer normalBuf(1023, fMemoryManager);
for(XMLSize_t i=0; i<size; i=i+2) {
- resolveSchemaGrammar(fLocationPairs->elementAt(i+1), fLocationPairs->elementAt(i));
+ normalizeAttRawValue(SchemaSymbols::fgXSI_SCHEMALOCATION, fLocationPairs->elementAt(i), normalBuf);
+ resolveSchemaGrammar(fLocationPairs->elementAt(i+1), normalBuf.getRawBuffer());
}
}
}
Modified: xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp?rev=802812&r1=802811&r2=802812&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp Mon Aug 10 14:42:03 2009
@@ -2258,7 +2258,7 @@
ValueValidate = true;
}
- else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_SCHEMALOCACTION))
+ else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_SCHEMALOCATION))
{
// use anyURI as the validator
// tokenize the data and use the anyURI data for each piece
@@ -2273,7 +2273,7 @@
ValueValidate = false;
tokenizeBuffer = true;
}
- else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION))
+ else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCATION))
{
attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI);
//We should validate this value however
@@ -3594,9 +3594,9 @@
const XMLCh* valuePtr = curPair->getValue();
const XMLCh* suffPtr = &rawPtr[colonInd + 1];
- if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_SCHEMALOCACTION))
+ if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_SCHEMALOCATION))
parseSchemaLocation(valuePtr);
- else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCACTION))
+ else if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_NONAMESPACESCHEMALOCATION))
resolveSchemaGrammar(valuePtr, XMLUni::fgZeroLenString);
if (XMLString::equals(suffPtr, SchemaSymbols::fgXSI_TYPE)) {
@@ -3634,8 +3634,11 @@
if (size % 2 != 0 ) {
emitError(XMLErrs::BadSchemaLocation);
} else {
+ // We need a buffer to normalize the attribute value into
+ XMLBuffer normalBuf(1023, fMemoryManager);
for(XMLSize_t i=0; i<size; i=i+2) {
- resolveSchemaGrammar(schemaLocation->elementAt(i+1), schemaLocation->elementAt(i));
+ normalizeAttRawValue(SchemaSymbols::fgXSI_SCHEMALOCATION, schemaLocation->elementAt(i), normalBuf);
+ resolveSchemaGrammar(schemaLocation->elementAt(i+1), normalBuf.getRawBuffer());
}
}
}
Propchange: xerces/c/trunk/tests/src/XSTSHarness/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Aug 10 14:42:03 2009
@@ -0,0 +1 @@
+.deps
Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xml
URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xml?rev=802812&view=auto
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xml (added)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xml Mon Aug 10 14:42:03 2009
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ack xmlns="http://www.theriak.is/namespace/\:*?"<>|"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.theriak.is/namespace/\:*?"<>| ack.xsd" message_id="test_msg_id"/>
+
\ No newline at end of file
Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xsd
URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xsd?rev=802812&view=auto
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xsd (added)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1831/ack.xsd Mon Aug 10 14:42:03 2009
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema targetNamespace="http://www.theriak.is/namespace/\:*?"<>|" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.theriak.is/namespace/\:*?"<>|" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:element name="ack">
+ <xs:complexType>
+ <xs:attribute name="message_id" type="xs:string" use="required"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
Modified: xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet
URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet?rev=802812&r1=802811&r2=802812&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet (original)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet Mon Aug 10 14:42:03 2009
@@ -611,6 +611,22 @@
<current status="accepted" date="2008-12-29"/>
</schemaTest>
</testGroup>
+ <testGroup name="XERCESC-1831">
+ <annotation>
+ <documentation>Xerces-c can not parse instance with special chars (", < and >) in target namespace</documentation>
+ </annotation>
+ <documentationReference xlink:href="https://issues.apache.org/jira/browse/XERCESC-1831"/>
+ <schemaTest name="XERCESC-1831">
+ <schemaDocument xlink:href="./XERCESC-1831/ack.xsd"/>
+ <expected validity="valid"/>
+ <current status="accepted" date="2009-08-10"/>
+ </schemaTest>
+ <instanceTest name="XERCESC-1831-1">
+ <instanceDocument xlink:href="./XERCESC-1831/ack.xml"/>
+ <expected validity="valid"/>
+ <current status="accepted" date="2009-08-10"/>
+ </instanceTest>
+ </testGroup>
<testGroup name="XERCESC-1832">
<annotation>
<documentation>Namespace definitions attached to xs:extension/xs:restriction are not processed</documentation>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org