Documentation ¶
Index ¶
- type GoWSDL
- type Location
- type WSDL
- type WSDLBinding
- type WSDLFault
- type WSDLImport
- type WSDLInput
- type WSDLMessage
- type WSDLOperation
- type WSDLOutput
- type WSDLPart
- type WSDLPort
- type WSDLPortType
- type WSDLSOAPAddress
- type WSDLSOAPBinding
- type WSDLSOAPBody
- type WSDLSOAPFault
- type WSDLSOAPHeader
- type WSDLSOAPHeaderFault
- type WSDLSOAPOperation
- type WSDLService
- type WSDLType
- type XSDAny
- type XSDAttribute
- type XSDComplexContent
- type XSDComplexType
- type XSDElement
- type XSDExtension
- type XSDGroup
- type XSDImport
- type XSDInclude
- type XSDList
- type XSDRestriction
- type XSDRestrictionValue
- type XSDSchema
- type XSDSimpleContent
- type XSDSimpleType
- type XSDUnion
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GoWSDL ¶
type GoWSDL struct {
// contains filtered or unexported fields
}
GoWSDL defines the struct for WSDL generator.
func (*GoWSDL) Start ¶
Start starts the GoWSDL code generation process. It unmarshals the WSDL document, resolves complex type name collisions, and generates the necessary code for types, operations, and server based on the WSDL structure. The output is returned as a map of byte slices, where the keys represent different code files and the values contain the corresponding generated code. In case of any error during the generation process, an error is returned.
type Location ¶
type Location struct {
// contains filtered or unexported fields
}
A Location encapsulate information about the loc of WSDL/XSD.
It could be either URL or an absolute file path.
func ParseLocation ¶
ParseLocation parses a rawloc into a Location structure.
If rawloc is URL then it should be absolute. Relative file path will be converted into absolute path.
type WSDL ¶
type WSDL struct { Xmlns map[string]string `xml:"-"` Name string `xml:"name,attr"` TargetNamespace string `xml:"targetNamespace,attr"` Imports []*WSDLImport `xml:"import"` Doc string `xml:"documentation"` Types WSDLType `xml:"http://schemas.xmlsoap.org/wsdl/ types"` Messages []*WSDLMessage `xml:"http://schemas.xmlsoap.org/wsdl/ message"` PortTypes []*WSDLPortType `xml:"http://schemas.xmlsoap.org/wsdl/ portType"` Binding []*WSDLBinding `xml:"http://schemas.xmlsoap.org/wsdl/ binding"` Service []*WSDLService `xml:"http://schemas.xmlsoap.org/wsdl/ service"` }
WSDL represents the global structure of a WSDL file.
func (*WSDL) UnmarshalXML ¶
UnmarshalXML implements interface xml.Unmarshaler for XSDSchema.
type WSDLBinding ¶
type WSDLBinding struct { Name string `xml:"name,attr"` Type string `xml:"type,attr"` Doc string `xml:"documentation"` SOAPBinding WSDLSOAPBinding `xml:"http://schemas.xmlsoap.org/wsdl/soap/ binding"` Operations []*WSDLOperation `xml:"http://schemas.xmlsoap.org/wsdl/ operation"` }
WSDLBinding defines only a SOAP binding and its operations
type WSDLFault ¶
type WSDLFault struct { Name string `xml:"name,attr"` Message string `xml:"message,attr"` Doc string `xml:"documentation"` SOAPFault WSDLSOAPFault `xml:"http://schemas.xmlsoap.org/wsdl/soap/ fault"` }
WSDLFault represents a WSDL fault message.
type WSDLImport ¶
type WSDLImport struct { Namespace string `xml:"namespace,attr"` Location string `xml:"location,attr"` }
WSDLImport is the struct used for deserializing WSDL imports.
type WSDLInput ¶
type WSDLInput struct { Name string `xml:"name,attr"` Message string `xml:"message,attr"` Doc string `xml:"documentation"` SOAPBody WSDLSOAPBody `xml:"http://schemas.xmlsoap.org/wsdl/soap/ body"` SOAPHeader []*WSDLSOAPHeader `xml:"http://schemas.xmlsoap.org/wsdl/soap/ header"` }
WSDLInput represents a WSDL input message.
type WSDLMessage ¶
type WSDLMessage struct { Name string `xml:"name,attr"` Doc string `xml:"documentation"` Parts []*WSDLPart `xml:"http://schemas.xmlsoap.org/wsdl/ part"` }
WSDLMessage represents a function, which in turn has one or more parameters.
type WSDLOperation ¶
type WSDLOperation struct { Name string `xml:"name,attr"` Doc string `xml:"documentation"` Input WSDLInput `xml:"input"` Output WSDLOutput `xml:"output"` Faults []*WSDLFault `xml:"fault"` SOAPOperation WSDLSOAPOperation `xml:"http://schemas.xmlsoap.org/wsdl/soap/ operation"` }
WSDLOperation represents the contract of an entire operation or function.
type WSDLOutput ¶
type WSDLOutput struct { Name string `xml:"name,attr"` Message string `xml:"message,attr"` Doc string `xml:"documentation"` SOAPBody WSDLSOAPBody `xml:"http://schemas.xmlsoap.org/wsdl/soap/ body"` SOAPHeader []*WSDLSOAPHeader `xml:"http://schemas.xmlsoap.org/wsdl/soap/ header"` }
WSDLOutput represents a WSDL output message.
type WSDLPart ¶
type WSDLPart struct { Name string `xml:"name,attr"` Element string `xml:"element,attr"` Type string `xml:"type,attr"` }
WSDLPart defines the struct for a function parameter within a WSDL.
type WSDLPort ¶
type WSDLPort struct { Name string `xml:"name,attr"` Binding string `xml:"binding,attr"` Doc string `xml:"documentation"` SOAPAddress WSDLSOAPAddress `xml:"http://schemas.xmlsoap.org/wsdl/soap/ address"` }
WSDLPort defines the properties for a SOAP port only.
type WSDLPortType ¶
type WSDLPortType struct { Name string `xml:"name,attr"` Doc string `xml:"documentation"` Operations []*WSDLOperation `xml:"http://schemas.xmlsoap.org/wsdl/ operation"` }
WSDLPortType defines the service, operations that can be performed and the messages involved. A port type can be compared to a function library, module or class.
type WSDLSOAPAddress ¶
type WSDLSOAPAddress struct {
Location string `xml:"location,attr"`
}
WSDLSOAPAddress defines the location for the SOAP service.
type WSDLSOAPBinding ¶
type WSDLSOAPBinding struct { Style string `xml:"style,attr"` Transport string `xml:"transport,attr"` }
WSDLSOAPBinding represents a SOAP binding to the web service.
type WSDLSOAPBody ¶
type WSDLSOAPBody struct { Parts string `xml:"parts,attr"` Use string `xml:"use,attr"` EncodingStyle string `xml:"encodingStyle,attr"` Namespace string `xml:"namespace,attr"` }
WSDLSOAPBody defines SOAP body characteristics.
type WSDLSOAPFault ¶
type WSDLSOAPFault struct { Parts string `xml:"parts,attr"` Use string `xml:"use,attr"` EncodingStyle string `xml:"encodingStyle,attr"` Namespace string `xml:"namespace,attr"` }
WSDLSOAPFault defines a SOAP fault message characteristics.
type WSDLSOAPHeader ¶
type WSDLSOAPHeader struct { Message string `xml:"message,attr"` Part string `xml:"part,attr"` Use string `xml:"use,attr"` EncodingStyle string `xml:"encodingStyle,attr"` Namespace string `xml:"namespace,attr"` HeadersFault []*WSDLSOAPHeaderFault `xml:"headerfault"` }
WSDLSOAPHeader defines the header for a SOAP service.
type WSDLSOAPHeaderFault ¶
type WSDLSOAPHeaderFault struct { Message string `xml:"message,attr"` Part string `xml:"part,attr"` Use string `xml:"use,attr"` EncodingStyle string `xml:"encodingStyle,attr"` Namespace string `xml:"namespace,attr"` }
WSDLSOAPHeaderFault defines a SOAP fault header.
type WSDLSOAPOperation ¶
type WSDLSOAPOperation struct { SOAPAction string `xml:"soapAction,attr"` Style string `xml:"style,attr"` }
WSDLSOAPOperation represents a service operation in SOAP terms.
type WSDLService ¶
type WSDLService struct { Name string `xml:"name,attr"` Doc string `xml:"documentation"` Ports []*WSDLPort `xml:"http://schemas.xmlsoap.org/wsdl/ port"` }
WSDLService defines the list of SOAP services associated with the WSDL.
type WSDLType ¶
WSDLType represents the entry point for deserializing XSD schemas used by the WSDL file.
type XSDAny ¶
type XSDAny struct { XMLName xml.Name `xml:"any"` Doc string `xml:"annotation>documentation"` MinOccurs string `xml:"minOccurs,attr"` MaxOccurs string `xml:"maxOccurs,attr"` Namespace string `xml:"namespace,attr"` ProcessContents string `xml:"processContents,attr"` }
XSDAny represents a Schema element.
type XSDAttribute ¶
type XSDAttribute struct { Doc string `xml:"annotation>documentation"` Name string `xml:"name,attr"` Ref string `xml:"ref,attr"` Type string `xml:"type,attr"` Use string `xml:"use,attr"` Fixed string `xml:"fixed,attr"` SimpleType *XSDSimpleType `xml:"simpleType"` }
XSDAttribute represent an element attribute. Simple elements cannot have attributes. If an element has attributes, it is considered to be of a complex type. But the attribute itself is always declared as a simple type.
type XSDComplexContent ¶
type XSDComplexContent struct { XMLName xml.Name `xml:"complexContent"` Extension XSDExtension `xml:"extension"` }
XSDComplexContent element defines extensions or restrictions on a complex type that contains mixed content or elements only.
type XSDComplexType ¶
type XSDComplexType struct { XMLName xml.Name `xml:"complexType"` Abstract bool `xml:"abstract,attr"` Name string `xml:"name,attr"` Mixed bool `xml:"mixed,attr"` Sequence []*XSDElement `xml:"sequence>element"` Choice []*XSDElement `xml:"choice>element"` SequenceChoice []*XSDElement `xml:"sequence>choice>element"` All []*XSDElement `xml:"all>element"` ComplexContent XSDComplexContent `xml:"complexContent"` SimpleContent XSDSimpleContent `xml:"simpleContent"` Attributes []*XSDAttribute `xml:"attribute"` Any []*XSDAny `xml:"sequence>any"` }
XSDComplexType represents a Schema complex type.
type XSDElement ¶
type XSDElement struct { XMLName xml.Name `xml:"element"` Name string `xml:"name,attr"` Doc string `xml:"annotation>documentation"` Nillable bool `xml:"nillable,attr"` Type string `xml:"type,attr"` Ref string `xml:"ref,attr"` MinOccurs string `xml:"minOccurs,attr"` MaxOccurs string `xml:"maxOccurs,attr"` ComplexType *XSDComplexType `xml:"complexType"` // local SimpleType *XSDSimpleType `xml:"simpleType"` Groups []*XSDGroup `xml:"group"` }
XSDElement represents a Schema element.
type XSDExtension ¶
type XSDExtension struct { XMLName xml.Name `xml:"extension"` Base string `xml:"base,attr"` Attributes []*XSDAttribute `xml:"attribute"` Sequence []*XSDElement `xml:"sequence>element"` Choice []*XSDElement `xml:"choice>element"` SequenceChoice []*XSDElement `xml:"sequence>choice>element"` }
XSDExtension element extends an existing simpleType or complexType element.
type XSDGroup ¶
type XSDGroup struct { Name string `xml:"name,attr"` Ref string `xml:"ref,attr"` Sequence []XSDElement `xml:"sequence>element"` Choice []XSDElement `xml:"choice>element"` All []XSDElement `xml:"all>element"` }
XSDGroup element is used to define a group of elements to be used in complex type definitions.
type XSDImport ¶
type XSDImport struct { XMLName xml.Name `xml:"import"` SchemaLocation string `xml:"schemaLocation,attr"` Namespace string `xml:"namespace,attr"` }
XSDImport represents XSD imports within the main schema.
type XSDInclude ¶
type XSDInclude struct {
SchemaLocation string `xml:"schemaLocation,attr"`
}
XSDInclude represents schema includes.
type XSDList ¶
type XSDList struct { Doc string `xml:"annotation>documentation"` ItemType string `xml:"itemType,attr"` SimpleType *XSDSimpleType `xml:"simpleType"` }
XSDList represents a element list
type XSDRestriction ¶
type XSDRestriction struct { Base string `xml:"base,attr"` Enumeration []XSDRestrictionValue `xml:"enumeration"` Pattern XSDRestrictionValue `xml:"pattern"` MinInclusive XSDRestrictionValue `xml:"minInclusive"` MaxInclusive XSDRestrictionValue `xml:"maxInclusive"` WhiteSpace XSDRestrictionValue `xml:"whitespace"` Length XSDRestrictionValue `xml:"length"` MinLength XSDRestrictionValue `xml:"minLength"` MaxLength XSDRestrictionValue `xml:"maxLength"` }
XSDRestriction defines restrictions on a simpleType, simpleContent, or complexContent definition.
type XSDRestrictionValue ¶
type XSDRestrictionValue struct { Doc string `xml:"annotation>documentation"` Value string `xml:"value,attr"` }
XSDRestrictionValue represents a restriction value.
type XSDSchema ¶
type XSDSchema struct { XMLName xml.Name `xml:"schema"` Xmlns map[string]string `xml:"-"` Tns string `xml:"xmlns tns,attr"` Xs string `xml:"xmlns xs,attr"` Version string `xml:"version,attr"` TargetNamespace string `xml:"targetNamespace,attr"` ElementFormDefault string `xml:"elementFormDefault,attr"` Includes []*XSDInclude `xml:"include"` Imports []*XSDImport `xml:"import"` Elements []*XSDElement `xml:"element"` Attributes []*XSDAttribute `xml:"attribute"` ComplexTypes []*XSDComplexType `xml:"complexType"` // global SimpleType []*XSDSimpleType `xml:"simpleType"` }
XSDSchema represents an entire Schema structure.
func (*XSDSchema) UnmarshalXML ¶
UnmarshalXML implements interface xml.Unmarshaler for XSDSchema.
type XSDSimpleContent ¶
type XSDSimpleContent struct { XMLName xml.Name `xml:"simpleContent"` Extension XSDExtension `xml:"extension"` }
XSDSimpleContent element contains extensions or restrictions on a text-only complex type or on a simple type as content and contains no elements.
type XSDSimpleType ¶
type XSDSimpleType struct { Name string `xml:"name,attr"` Doc string `xml:"annotation>documentation"` Restriction XSDRestriction `xml:"restriction"` List XSDList `xml:"list"` Union XSDUnion `xml:"union"` Final string `xml:"final"` }
XSDSimpleType element defines a simple type and specifies the constraints and information about the values of attributes or text-only elements.
type XSDUnion ¶
type XSDUnion struct { SimpleType []*XSDSimpleType `xml:"simpleType,omitempty"` MemberTypes string `xml:"memberTypes,attr"` }
XSDUnion represents a union element