go get github.com/m29h/go-xml
This repository contains a collection of Go packages for working with XML, with the ultimate goal of enabling code generation based on XML documents.
- The xmltreepackage converts xml documents to a tree data structure, and provides convenient methods for manipulating and searching through that tree.
- The xsdpackage implements a parser for XML Schema. It takes some liberties from the specification, and would need some work for use as a validator, but it handles type inheritance and XML namespaces in a relatively sane way.
- The xsdgenpackage provides a customizable code generator that generates Go type declarations and marshal/unmarshal methods for an XML Schema.
- The wsdlpackage parses Web Service Definition Language (WSDL) files, which describe a (usually) SOAP web service.
- The wsdlgenpackage generates Go source code from WSDL files. This version generates the pure client function for binding to a generic SOAP client implemention through a slimSOAPdoerinterface. Check out the package github.com/m29h/gosoap for a concrete soap client implementation that can work with this generated client code and supports WS-Security x.509
- The xsdgenandwsdlgencommands generate Go code with default settings and are suitable for use withgo generate.
The directory wsdlgen/examples contains packages that were (mostly) automatically generated using the wsdlgen package. You can run go generate within the subdirectories to re-generate the code if you make changes to the wsdlgen package.