Re: [xml] Need help on normalization/canonicalization with namespace prefix rewrite



I am not sure what is the suggest algorithm to "rewrite namespace
prefixes". Regardless, this is not part of C14N spec and something
you will have to do yourself.

Aleksey

On 1/28/18 3:19 AM, Mikhail Goloborodko wrote:
Hi All,

I will appreciate if somebody could help on how to normalize and
canonicalize XML.

For example
<?xml version="1.0" encoding="WINDOWS-1251"?>
<ed:N1 attr="4583001999" xmlns:ed="urn:ru:ed:v2.0">
</ed:N>

I need to get

<n1:N1 xmlns:n1="urn:cbr-ru:ed:v2.0" attr="4583001999"></n1:N1>

And for

<?xml version="1.0" encoding="WINDOWS-1251"?>
<N1 attr="4583001999" xmlns="urn:ru:ed:v2.0">
  <N2 attr="value"></N2>
</N1>

I need

<n1:N1 xmlns:n1="urn:ru:ed:v2.0"> attr="4583001999"<n1:N2
attr="value"></n1:N2></n1:N1>

In other words I need to remove whitespaces and rewrite namespace prefixes
I use
string src;
xmlChar * canon;
xmlDocPtr xDoc = xmlReadMemory(src.data(), src.size(), nullptr, nullptr,
XML_PARSE_NOBLANKS);
int bytes = xmlC14NDocDumpMemory(xDoc, nullptr, 0, nullptr, 0, & canon);

It removes whitespaces, need help with namespace prefix rewrite.

Thank you in advance.

On Sun, Jan 28, 2018 at 12:41 AM, Mikhail Goloborodko
<mgoloborodko gmail com <mailto:mgoloborodko gmail com>> wrote:

    Hi,

    I need help on how to normalize and canonicalize XML.
    For example
    <?xml version="1.0" encoding="WINDOWS-1251"?>
    <ed:N1 attr="4583001999" xmlns:ed="urn:ru:ed:v2.0">
    </ed:N>

    I need to get

    <n1:N1 xmlns:n1="urn:cbr-ru:ed:v2.0" attr="4583001999"></n1:N1>

    And for

    <?xml version="1.0" encoding="WINDOWS-1251"?>
    <N1 attr="4583001999" xmlns="urn:ru:ed:v2.0">
      <N2 attr="value"></N2>
    </N1>

    I need

    <n1:N1 attr="4583001999" xmlns="urn:ru:ed:v2.0"><n1:N2
    attr="value"></n1:N2></n1:N1>

    In other words I need to remove whitespaces and rewrite namespace
    prefixes
    I use
    string src;
    xmlChar * canon;
    xmlDocPtr xDoc = xmlReadMemory(src.data(), src.size(), nullptr,
    nullptr, XML_PARSE_NOBLANKS);
    int bytes = xmlC14NDocDumpMemory(xDoc, nullptr, 0, nullptr, 0, & canon);

    It clearly removes whitespace, need help with namespace prefix rewrite.

    Thank you in advance.

    Mikhail 




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



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