153aa9179Sopenharmony_ciFrom 2fe372a0aa2cdeb5cf518cf430defba36647c502 Mon Sep 17 00:00:00 2001
253aa9179Sopenharmony_ciFrom: Damjan Jovanovic <damjan.jov@gmail.com>
353aa9179Sopenharmony_ciDate: Sat, 21 Aug 2021 07:21:50 +0200
453aa9179Sopenharmony_ciSubject: [PATCH] Properly fold whitespace around the QName value when
553aa9179Sopenharmony_ci validating an XSD schema.
653aa9179Sopenharmony_ci
753aa9179Sopenharmony_ci(May also need fixing in other places.)
853aa9179Sopenharmony_ci
953aa9179Sopenharmony_ciIssue: 239
1053aa9179Sopenharmony_ci
1153aa9179Sopenharmony_ciConflict:NA
1253aa9179Sopenharmony_ciReference:https://gitlab.gnome.org/GNOME/libxml2/-/commit/2fe372a0aa2cdeb5cf518cf430defba36647c502
1353aa9179Sopenharmony_ci
1453aa9179Sopenharmony_ci---
1553aa9179Sopenharmony_ci xmlschemas.c | 6 +++++-
1653aa9179Sopenharmony_ci 1 file changed, 5 insertions(+), 1 deletion(-)
1753aa9179Sopenharmony_ci
1853aa9179Sopenharmony_cidiff --git a/xmlschemas.c b/xmlschemas.c
1953aa9179Sopenharmony_ciindex 2da962b..9da4cd1 100644
2053aa9179Sopenharmony_ci--- a/xmlschemas.c
2153aa9179Sopenharmony_ci+++ b/xmlschemas.c
2253aa9179Sopenharmony_ci@@ -24645,6 +24645,7 @@ xmlSchemaValidateQName(xmlSchemaValidCtxtPtr vctxt,
2353aa9179Sopenharmony_ci 		       int valNeeded)
2453aa9179Sopenharmony_ci {
2553aa9179Sopenharmony_ci     int ret;
2653aa9179Sopenharmony_ci+    xmlChar *stripped;
2753aa9179Sopenharmony_ci     const xmlChar *nsName;
2853aa9179Sopenharmony_ci     xmlChar *local, *prefix = NULL;
2953aa9179Sopenharmony_ci 
3053aa9179Sopenharmony_ci@@ -24661,7 +24662,10 @@ xmlSchemaValidateQName(xmlSchemaValidCtxtPtr vctxt,
3153aa9179Sopenharmony_ci     * NOTE: xmlSplitQName2 will always return a duplicated
3253aa9179Sopenharmony_ci     * strings.
3353aa9179Sopenharmony_ci     */
3453aa9179Sopenharmony_ci-    local = xmlSplitQName2(value, &prefix);
3553aa9179Sopenharmony_ci+    /* TODO: Export and use xmlSchemaStrip instead */
3653aa9179Sopenharmony_ci+    stripped = xmlSchemaCollapseString(value);
3753aa9179Sopenharmony_ci+    local = xmlSplitQName2(stripped ? stripped : value, &prefix);
3853aa9179Sopenharmony_ci+    xmlFree(stripped);
3953aa9179Sopenharmony_ci     if (local == NULL)
4053aa9179Sopenharmony_ci 	local = xmlStrdup(value);
4153aa9179Sopenharmony_ci     /*
4253aa9179Sopenharmony_ci-- 
4353aa9179Sopenharmony_ci2.27.0
4453aa9179Sopenharmony_ci
45