Skip to content
/ xml Public

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

License

Notifications You must be signed in to change notification settings

m29h/xml

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages