Initial QSfera import
This commit is contained in:
+277
@@ -0,0 +1,277 @@
|
||||
package godata
|
||||
|
||||
import (
|
||||
"encoding/xml"
|
||||
)
|
||||
|
||||
const (
|
||||
GoDataString = "Edm.String"
|
||||
GoDataInt16 = "Edm.Int16"
|
||||
GoDataInt32 = "Edm.Int32"
|
||||
GoDataInt64 = "Edm.Int64"
|
||||
GoDataDecimal = "Edm.Decimal"
|
||||
GoDataBinary = "Edm.Binary"
|
||||
GoDataBoolean = "Edm.Boolean"
|
||||
GoDataTimeOfDay = "Edm.TimeOfDay"
|
||||
GoDataDate = "Edm.Date"
|
||||
GoDataDateTimeOffset = "Edm.DateTimeOffset"
|
||||
)
|
||||
|
||||
type GoDataMetadata struct {
|
||||
XMLName xml.Name `xml:"edmx:Edmx"`
|
||||
XMLNamespace string `xml:"xmlns:edmx,attr"`
|
||||
Version string `xml:"Version,attr"`
|
||||
DataServices *GoDataServices
|
||||
References []*GoDataReference
|
||||
}
|
||||
|
||||
func (t *GoDataMetadata) Bytes() ([]byte, error) {
|
||||
output, err := xml.MarshalIndent(t, "", " ")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return append([]byte(xml.Header), output...), nil
|
||||
}
|
||||
|
||||
func (t *GoDataMetadata) String() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
type GoDataReference struct {
|
||||
XMLName xml.Name `xml:"edmx:Reference"`
|
||||
Uri string `xml:"Uri,attr"`
|
||||
Includes []*GoDataInclude
|
||||
IncludeAnnotations []*GoDataIncludeAnnotations
|
||||
}
|
||||
|
||||
type GoDataInclude struct {
|
||||
XMLName xml.Name `xml:"edmx:Include"`
|
||||
Namespace string `xml:"Namespace,attr"`
|
||||
Alias string `xml:"Alias,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataIncludeAnnotations struct {
|
||||
XMLName xml.Name `xml:"edmx:IncludeAnnotations"`
|
||||
TermNamespace string `xml:"TermNamespace,attr"`
|
||||
Qualifier string `xml:"Qualifier,attr,omitempty"`
|
||||
TargetNamespace string `xml:"TargetNamespace,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataServices struct {
|
||||
XMLName xml.Name `xml:"edmx:DataServices"`
|
||||
Schemas []*GoDataSchema
|
||||
}
|
||||
|
||||
type GoDataSchema struct {
|
||||
XMLName xml.Name `xml:"Schema"`
|
||||
Namespace string `xml:"Namespace,attr"`
|
||||
Alias string `xml:"Alias,attr,omitempty"`
|
||||
Actions []*GoDataAction
|
||||
Annotations []*GoDataAnnotations
|
||||
Annotation []*GoDataAnnotation
|
||||
ComplexTypes []*GoDataComplexType
|
||||
EntityContainers []*GoDataEntityContainer
|
||||
EntityTypes []*GoDataEntityType
|
||||
EnumTypes []*GoDataEnumType
|
||||
Functions []*GoDataFunction
|
||||
Terms []*GoDataTerm
|
||||
TypeDefinitions []*GoDataTypeDefinition
|
||||
}
|
||||
|
||||
type GoDataAction struct {
|
||||
XMLName xml.Name `xml:"Action"`
|
||||
Name string `xml:"Name,attr"`
|
||||
IsBound string `xml:"IsBound,attr,omitempty"`
|
||||
EntitySetPath string `xml:"EntitySetPath,attr,omitempty"`
|
||||
Parameters []*GoDataParameter
|
||||
ReturnType *GoDataReturnType
|
||||
}
|
||||
|
||||
type GoDataAnnotations struct {
|
||||
XMLName xml.Name `xml:"Annotations"`
|
||||
Target string `xml:"Target,attr"`
|
||||
Qualifier string `xml:"Qualifier,attr,omitempty"`
|
||||
Annotations []*GoDataAnnotation
|
||||
}
|
||||
|
||||
type GoDataAnnotation struct {
|
||||
XMLName xml.Name `xml:"Annotation"`
|
||||
Term string `xml:"Term,attr"`
|
||||
Qualifier string `xml:"Qualifier,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataComplexType struct {
|
||||
XMLName xml.Name `xml:"ComplexType"`
|
||||
Name string `xml:"Name,attr"`
|
||||
BaseType string `xml:"BaseType,attr,omitempty"`
|
||||
Abstract string `xml:"Abstract,attr,omitempty"`
|
||||
OpenType string `xml:"OpenType,attr,omitempty"`
|
||||
Properties []*GoDataProperty
|
||||
NavigationProperties []*GoDataNavigationProperty
|
||||
}
|
||||
|
||||
type GoDataEntityContainer struct {
|
||||
XMLName xml.Name `xml:"EntityContainer"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Extends string `xml:"Extends,attr,omitempty"`
|
||||
EntitySets []*GoDataEntitySet
|
||||
Singletons []*GoDataSingleton
|
||||
ActionImports []*GoDataActionImport
|
||||
FunctionImports []*GoDataFunctionImport
|
||||
}
|
||||
|
||||
type GoDataEntityType struct {
|
||||
XMLName xml.Name `xml:"EntityType"`
|
||||
Name string `xml:"Name,attr"`
|
||||
BaseType string `xml:"BaseType,attr,omitempty"`
|
||||
Abstract string `xml:"Abstract,attr,omitempty"`
|
||||
OpenType string `xml:"OpenType,attr,omitempty"`
|
||||
HasStream string `xml:"HasStream,attr,omitempty"`
|
||||
Key *GoDataKey
|
||||
Properties []*GoDataProperty
|
||||
NavigationProperties []*GoDataNavigationProperty
|
||||
}
|
||||
|
||||
type GoDataEnumType struct {
|
||||
XMLName xml.Name `xml:"EnumType"`
|
||||
Name string `xml:"Name,attr"`
|
||||
UnderlyingType string `xml:"UnderlyingType,attr,omitempty"`
|
||||
IsFlags string `xml:"IsFlags,attr,omitempty"`
|
||||
Members []*GoDataMember
|
||||
}
|
||||
|
||||
type GoDataFunction struct {
|
||||
XMLName xml.Name `xml:"Function"`
|
||||
Name string `xml:"Name,attr"`
|
||||
IsBound string `xml:"IsBound,attr,omitempty"`
|
||||
IsComposable string `xml:"IsComposable,attr,omitempty"`
|
||||
EntitySetPath string `xml:"EntitySetPath,attr,omitempty"`
|
||||
Parameters []*GoDataParameter
|
||||
ReturnType *GoDataReturnType
|
||||
}
|
||||
|
||||
type GoDataTypeDefinition struct {
|
||||
XMLName xml.Name `xml:"TypeDefinition"`
|
||||
Name string `xml:"Name,attr"`
|
||||
UnderlyingType string `xml:"UnderlyingTypeattr,omitempty"`
|
||||
Annotations []*GoDataAnnotation
|
||||
}
|
||||
|
||||
type GoDataProperty struct {
|
||||
XMLName xml.Name `xml:"Property"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Type string `xml:"Type,attr"`
|
||||
Nullable string `xml:"Nullable,attr,omitempty"`
|
||||
MaxLength int `xml:"MaxLength,attr,omitempty"`
|
||||
Precision int `xml:"Precision,attr,omitempty"`
|
||||
Scale int `xml:"Scale,attr,omitempty"`
|
||||
Unicode string `xml:"Unicode,attr,omitempty"`
|
||||
SRID string `xml:"SRID,attr,omitempty"`
|
||||
DefaultValue string `xml:"DefaultValue,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataNavigationProperty struct {
|
||||
XMLName xml.Name `xml:"NavigationProperty"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Type string `xml:"Type,attr"`
|
||||
Nullable string `xml:"Nullable,attr,omitempty"`
|
||||
Partner string `xml:"Partner,attr,omitempty"`
|
||||
ContainsTarget string `xml:"ContainsTarget,attr,omitempty"`
|
||||
ReferentialConstraints []*GoDataReferentialConstraint
|
||||
}
|
||||
|
||||
type GoDataReferentialConstraint struct {
|
||||
XMLName xml.Name `xml:"ReferentialConstraint"`
|
||||
Property string `xml:"Property,attr"`
|
||||
ReferencedProperty string `xml:"ReferencedProperty,attr"`
|
||||
OnDelete *GoDataOnDelete `xml:"OnDelete,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataOnDelete struct {
|
||||
XMLName xml.Name `xml:"OnDelete"`
|
||||
Action string `xml:"Action,attr"`
|
||||
}
|
||||
|
||||
type GoDataEntitySet struct {
|
||||
XMLName xml.Name `xml:"EntitySet"`
|
||||
Name string `xml:"Name,attr"`
|
||||
EntityType string `xml:"EntityType,attr"`
|
||||
IncludeInServiceDocument string `xml:"IncludeInServiceDocument,attr,omitempty"`
|
||||
NavigationPropertyBindings []*GoDataNavigationPropertyBinding
|
||||
}
|
||||
|
||||
type GoDataSingleton struct {
|
||||
XMLName xml.Name `xml:"Singleton"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Type string `xml:"Type,attr"`
|
||||
NavigationPropertyBindings []*GoDataNavigationPropertyBinding
|
||||
}
|
||||
|
||||
type GoDataNavigationPropertyBinding struct {
|
||||
XMLName xml.Name `xml:"NavigationPropertyBinding"`
|
||||
Path string `xml:"Path,attr"`
|
||||
Target string `xml:"Target,attr"`
|
||||
}
|
||||
|
||||
type GoDataActionImport struct {
|
||||
XMLName xml.Name `xml:"ActionImport"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Action string `xml:"Action,attr"`
|
||||
EntitySet string `xml:"EntitySet,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataFunctionImport struct {
|
||||
XMLName xml.Name `xml:"FunctionImport"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Function string `xml:"Function,attr"`
|
||||
EntitySet string `xml:"EntitySet,attr,omitempty"`
|
||||
IncludeInServiceDocument string `xml:"IncludeInServiceDocument,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataKey struct {
|
||||
XMLName xml.Name `xml:"Key"`
|
||||
PropertyRef *GoDataPropertyRef
|
||||
}
|
||||
|
||||
type GoDataPropertyRef struct {
|
||||
XMLName xml.Name `xml:"PropertyRef"`
|
||||
Name string `xml:"Name,attr"`
|
||||
}
|
||||
|
||||
type GoDataParameter struct {
|
||||
XMLName xml.Name `xml:"Parameter"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Type string `xml:"Type,attr"`
|
||||
Nullable string `xml:"Nullable,attr,omitempty"`
|
||||
MaxLength int `xml:"MaxLength,attr,omitempty"`
|
||||
Precision int `xml:"Precision,attr,omitempty"`
|
||||
Scale int `xml:"Scale,attr,omitempty"`
|
||||
SRID string `xml:"SRID,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataReturnType struct {
|
||||
XMLName xml.Name `xml:"ReturnType"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Type string `xml:"Type,attr"`
|
||||
Nullable string `xml:"Nullable,attr,omitempty"`
|
||||
MaxLength int `xml:"MaxLength,attr,omitempty"`
|
||||
Precision int `xml:"Precision,attr,omitempty"`
|
||||
Scale int `xml:"Scale,attr,omitempty"`
|
||||
SRID string `xml:"SRID,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataMember struct {
|
||||
XMLName xml.Name `xml:"Member"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Value string `xml:"Value,attr,omitempty"`
|
||||
}
|
||||
|
||||
type GoDataTerm struct {
|
||||
XMLName xml.Name `xml:"Term"`
|
||||
Name string `xml:"Name,attr"`
|
||||
Type string `xml:"Type,attr"`
|
||||
BaseTerm string `xml:"BaseTerm,attr,omitempty"`
|
||||
DefaultValue string `xml:"DefaultValue,attr,omitempty"`
|
||||
AppliesTo string `xml:"AppliesTo,attr,omitempty"`
|
||||
}
|
||||
Reference in New Issue
Block a user