Re: [xml] [Bug][Patch] xmllint was not parsing the --c14n11 flag



  Whoops, good catch :) applied and pushed, thanks !

https://git.gnome.org/browse/libxml2/commit/?id=d9ea91322502e02140d21441add0c33a0a10b042

Daniel

On Wed, May 07, 2014 at 07:55:51PM +0200, Sérgio Batista wrote:
Note: The bug description below was extracted from my ticket in my fork of
libxml2 @ GitHub and is formatted using markdown.

---- Start of Bug description ----
When running `$ xmllint --c14n11 [other options] [xmlfile]` it doesn't sort
the attributes as per the [Canonical XML Version 1.1](
http://www.w3.org/TR/xml-c14n11/) from w3c.

Specifically I note that the following specifications are not verified:
* The XML declaration and document type declaration are removed
* Lexicographic order is imposed on the namespace declarations and
attributes of each element

These specifications, already existent in the [previous recomendation](
http://www.w3.org/TR/xml-c14n), hold with the call of `$ xmllint --c14n
[other options] [xmlfile]`.

#### I/O
*Note the order of the attributes and the XML declaration and document type*
##### Input
```xml
<?xml version="1.0"?>
<root>
<!-- I am a comment -->

<h:table xmlns:h="http://www.w3.org/TR/html4/";>
  <h:tr>
    <h:td c="" a=""
z="" >Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
</root>
```
##### Expected Output
```xml
<root>
<!-- I am a comment -->

<h:table xmlns:h="http://www.w3.org/TR/html4/";>
  <h:tr>
    <h:td a="" c="" z="">Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
</root>
```
##### Actual Output
```xml
<?xml version="1.0"?>
<root>
<!-- I am a comment -->

<h:table xmlns:h="http://www.w3.org/TR/html4/";>
  <h:tr>
    <h:td c="" a="" z="">Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
</root>
```
---- End of Bug description ----

In attachment there's the patch that fixes this behaviour.

Best regards,

Sérgio Batista

mail se rg io

From 0e97c3ee2674db2fe466ed0aa191b690c9f5af70 Mon Sep 17 00:00:00 2001
From: Sergio <mail se rg io>
Date: Wed, 7 May 2014 19:05:24 +0200
Subject: [PATCH] xmllint was not parsing the --c14n11 flag, fixes #1

---
 xmllint.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/xmllint.c b/xmllint.c
index 9d46ac5..b297ded 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -2580,7 +2580,7 @@ static void parseAndPrintFile(char *filename, xmlParserCtxtPtr rectxt) {
                  fprintf(stderr, "Failed to canonicalize\n");
                  progresult = XMLLINT_ERR_OUT;
              }
-         } else if (canonical) {
+         } else if (canonical_11) {
              xmlChar *result = NULL;
              int size;
 
-- 
1.9.1


_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml gnome org
https://mail.gnome.org/mailman/listinfo/xml


-- 
Daniel Veillard      | Open Source and Standards, Red Hat
veillard redhat com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | virtualization library  http://libvirt.org/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]