func ExampleIgnoreElements() { doc := xsdfile(` <complexType name="Person"> <sequence> <element name="name" type="xs:string" /> <element name="deceased" type="soapenc:boolean" /> <element name="private" type="xs:int" /> </sequence> </complexType> `) var cfg xsdgen.Config cfg.Option( xsdgen.IgnoreElements("private"), xsdgen.IgnoreAttributes("id", "href")) out, err := cfg.GenSource(doc) if err != nil { log.Fatal(err) } fmt.Printf("%s\n", out) // Output: package ws // // type Person struct { // Name string `xml:"http://www.example.com/ name"` // Deceased bool `xml:"http://www.example.com/ deceased"` // } }
func ExampleSOAPArrayAsSlice() { doc := xsdfile(` <complexType name="BoolArray"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="xs:boolean[]"/> </restriction> </complexContent> </complexType>`) var cfg xsdgen.Config cfg.Option( xsdgen.HandleSOAPArrayType(), xsdgen.SOAPArrayAsSlice(), xsdgen.IgnoreAttributes("offset", "id", "href")) out, err := cfg.GenSource(doc) if err != nil { log.Fatal(err) } fmt.Printf("%s\n", out) // Output: package ws // // import "encoding/xml" // // type BoolArray []bool // // func (a *BoolArray) MarshalXML(e *xml.Encoder, start xml.StartElement) error { // tag := xml.StartElement{Name: xml.Name{"", "item"}} // for _, elt := range *a { // if err := e.EncodeElement(elt, tag); err != nil { // return err // } // } // return nil // } // func (a *BoolArray) UnmarshalXML(d *xml.Decoder, start xml.StartElement) (err error) { // var tok xml.Token // var itemTag = xml.Name{"", ",any"} // for tok, err = d.Token(); err == nil; tok, err = d.Token() { // if tok, ok := tok.(xml.StartElement); ok { // var item bool // if itemTag.Local != ",any" && itemTag != tok.Name { // err = d.Skip() // continue // } // if err = d.DecodeElement(&item, &tok); err == nil { // *a = append(*a, item) // } // } // if _, ok := tok.(xml.EndElement); ok { // break // } // } // return err // } }
func ExampleConfig_GenCLI() { var cfg xsdgen.Config cfg.Option( xsdgen.IgnoreAttributes("id", "href", "offset"), xsdgen.IgnoreElements("comment"), xsdgen.PackageName("webapi"), xsdgen.Replace("_", ""), xsdgen.HandleSOAPArrayType(), xsdgen.SOAPArrayAsSlice(), ) if err := cfg.GenCLI("webapi.xsd", "deps/soap11.xsd"); err != nil { log.Fatal(err) } }
func ExampleIgnoreAttributes() { doc := xsdfile(` <complexType name="ArrayOfString"> <any maxOccurs="unbounded" /> <attribute name="soapenc:arrayType" type="xs:string" /> </complexType> `) var cfg xsdgen.Config cfg.Option(xsdgen.IgnoreAttributes("arrayType")) out, err := cfg.GenSource(doc) if err != nil { log.Fatal(err) } fmt.Printf("%s\n", out) // Output: package ws // // type ArrayOfString struct { // Items []string `xml:",any"` // } }