add the testchar to 'make check' Volker Grabsch pointed out a typo
* Makefile.am: add the testchar to 'make check'
* xmlschemas.c: Volker Grabsch pointed out a typo
* xmlregexp.c: production [19] from XML Schemas regexps were a
mistake removed in version REC-xmlschema-2-20041028, Volker Grabsch
provided a patch to remove it
* test/schemas/regexp-char-ref_0.xml test/schemas/regexp-char-ref_0.xsd
test/schemas/regexp-char-ref_1.xsd result/schemas/regexp-char-ref_0_0
result/schemas/regexp-char-ref_1_0: Volker Grabsch also provided
regession tests for this
Daniel
svn path=/trunk/; revision=3776
diff --git a/ChangeLog b/ChangeLog
index b3bcf55..30997f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+Tue Aug 26 09:42:08 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * Makefile.am: add the testchar to 'make check'
+ * xmlschemas.c: Volker Grabsch pointed out a typo
+ * xmlregexp.c: production [19] from XML Schemas regexps were a
+ mistake removed in version REC-xmlschema-2-20041028, Volker Grabsch
+ provided a patch to remove it
+ * test/schemas/regexp-char-ref_0.xml test/schemas/regexp-char-ref_0.xsd
+ test/schemas/regexp-char-ref_1.xsd result/schemas/regexp-char-ref_0_0
+ result/schemas/regexp-char-ref_1_0: Volker Grabsch also provided
+ regession tests for this
+
Tue Aug 26 09:25:39 CEST 2008 Daniel Veillard <daniel@veillard.com>
* include/libxml/parser.h xinclude.c xmllint.c: patch based on
diff --git a/Makefile.am b/Makefile.am
index dc06989..f1e2863 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -172,7 +172,7 @@
#testOOM_LDADD= $(LDADDS)
runtests:
- $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
+ $(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
check: all runtests
diff --git a/result/schemas/regexp-char-ref_0_0 b/result/schemas/regexp-char-ref_0_0
new file mode 100644
index 0000000..40ceb7f
--- /dev/null
+++ b/result/schemas/regexp-char-ref_0_0
@@ -0,0 +1 @@
+./test/schemas/regexp-char-ref_0.xml validates
diff --git a/result/schemas/regexp-char-ref_1_0 b/result/schemas/regexp-char-ref_1_0
new file mode 100644
index 0000000..40ceb7f
--- /dev/null
+++ b/result/schemas/regexp-char-ref_1_0
@@ -0,0 +1 @@
+./test/schemas/regexp-char-ref_0.xml validates
diff --git a/test/schemas/regexp-char-ref_0.xml b/test/schemas/regexp-char-ref_0.xml
new file mode 100644
index 0000000..f6f463e
--- /dev/null
+++ b/test/schemas/regexp-char-ref_0.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+
+<test test1="5"
+ test2="6"
+ test3="#"
+ test4=";"
+ test5="&" />
diff --git a/test/schemas/regexp-char-ref_0.xsd b/test/schemas/regexp-char-ref_0.xsd
new file mode 100644
index 0000000..2d91c6c
--- /dev/null
+++ b/test/schemas/regexp-char-ref_0.xsd
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="test">
+ <xs:complexType>
+ <xs:attribute name="test1" type="myType"/>
+ <xs:attribute name="test2" type="myType"/>
+ <xs:attribute name="test3" type="myType"/>
+ <xs:attribute name="test4" type="myType"/>
+ <xs:attribute name="test5" type="myType"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:simpleType name="myType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[56;&#]"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+</xs:schema>
diff --git a/test/schemas/regexp-char-ref_1.xsd b/test/schemas/regexp-char-ref_1.xsd
new file mode 100644
index 0000000..598a4d5
--- /dev/null
+++ b/test/schemas/regexp-char-ref_1.xsd
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="test">
+ <xs:complexType>
+ <xs:attribute name="test1" type="myType"/>
+ <xs:attribute name="test2" type="myType"/>
+ <xs:attribute name="test3" type="myType"/>
+ <xs:attribute name="test4" type="myType"/>
+ <xs:attribute name="test5" type="myType"/>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:simpleType name="myType">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[&#65;]"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+</xs:schema>
diff --git a/xmlregexp.c b/xmlregexp.c
index 54eb957..73598a5 100644
--- a/xmlregexp.c
+++ b/xmlregexp.c
@@ -4907,64 +4907,6 @@
}
/**
- * xmlFAParseCharRef:
- * @ctxt: a regexp parser context
- *
- * [19] XmlCharRef ::= ( '&#' [0-9]+ ';' ) | (' &#x' [0-9a-fA-F]+ ';' )
- */
-static int
-xmlFAParseCharRef(xmlRegParserCtxtPtr ctxt) {
- int ret = 0, cur;
-
- if ((CUR != '&') || (NXT(1) != '#'))
- return(-1);
- NEXT;
- NEXT;
- cur = CUR;
- if (cur == 'x') {
- NEXT;
- cur = CUR;
- if (((cur >= '0') && (cur <= '9')) ||
- ((cur >= 'a') && (cur <= 'f')) ||
- ((cur >= 'A') && (cur <= 'F'))) {
- while (((cur >= '0') && (cur <= '9')) ||
- ((cur >= 'a') && (cur <= 'f')) ||
- ((cur >= 'A') && (cur <= 'F'))) {
- if ((cur >= '0') && (cur <= '9'))
- ret = ret * 16 + cur - '0';
- else if ((cur >= 'a') && (cur <= 'f'))
- ret = ret * 16 + 10 + (cur - 'a');
- else
- ret = ret * 16 + 10 + (cur - 'A');
- NEXT;
- cur = CUR;
- }
- } else {
- ERROR("Char ref: expecting [0-9A-F]");
- return(-1);
- }
- } else {
- if ((cur >= '0') && (cur <= '9')) {
- while ((cur >= '0') && (cur <= '9')) {
- ret = ret * 10 + cur - '0';
- NEXT;
- cur = CUR;
- }
- } else {
- ERROR("Char ref: expecting [0-9]");
- return(-1);
- }
- }
- if (cur != ';') {
- ERROR("Char ref: expecting ';'");
- return(-1);
- } else {
- NEXT;
- }
- return(ret);
-}
-
-/**
* xmlFAParseCharRange:
* @ctxt: a regexp parser context
*
@@ -4985,12 +4927,6 @@
return;
}
- if ((CUR == '&') && (NXT(1) == '#')) {
- end = start = xmlFAParseCharRef(ctxt);
- xmlRegAtomAddRange(ctxt, ctxt->atom, ctxt->neg,
- XML_REGEXP_CHARVAL, start, end, NULL);
- return;
- }
cur = CUR;
if (cur == '\\') {
NEXT;
diff --git a/xmlschemas.c b/xmlschemas.c
index e8a603c..03c0b02 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -15092,7 +15092,7 @@
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_ST_PROPS_CORRECT_1,
WXS_BASIC_CAST type, NULL,
- "A type, derived by list or union, must have"
+ "A type, derived by list or union, must have "
"the simple ur-type definition as base type, not '%s'",
xmlSchemaGetComponentQName(&str, baseType));
FREE_AND_NULL(str)