m29h / xml

Package xml implements a XML 1.0 marshaler that is a drop in encoding/xml replacement producing Exclusive XML Canonicalization compatible output

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

xml GoDoc Tests Coverage Status Go Report Card

Package github.com/m29h/xml implements a XML 1.0 marshaler that is a drop in encoding/xml replacement maintaining full interface compatibility to it but aims to producing C14N Exclusive XML Canonicalization compatible byte sequences. This includes sorting of all rendered element attributes as per the C14N-XML spec.

Example

A Struct defined in the normal way as known from encoding/xml

type Person struct {
	XMLName xml.Name `xml:"http://example.com/ns1 person"`
	Name    string   `xml:"name"`
	Phone   string   `xml:"http://example.com/ns2 phone,omitempty"`
}

is marshaled to

<ns1:person xmlns:ns1="http://example.com/ns1">
  <ns1:name>Foo</ns1:name>
  <ns2:phone xmlns:ns2="http://example.com/ns2">123</ns2:phone>
</ns1:person>

About

Package xml implements a XML 1.0 marshaler that is a drop in encoding/xml replacement producing Exclusive XML Canonicalization compatible output

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Go 100.0%