-import xmlmarshaller
-
-AG_TYPE_MAPPING = { "ag:append" : "activegrid.model.processmodel.AppendOperation",
- "ag:body" : "activegrid.model.processmodel.Body",
- "ag:copy" : "activegrid.model.processmodel.CopyOperation",
- "ag:cssRule" : "activegrid.model.processmodel.CssRule",
- "ag:datasource" : "activegrid.data.dataservice.DataSource",
- "ag:debug" : "activegrid.model.processmodel.DebugOperation",
- "ag:deployment" : "activegrid.server.deployment.Deployment",
- "ag:glue" : "activegrid.model.processmodel.Glue",
- "ag:hr" : "activegrid.model.processmodel.HorizontalRow",
- "ag:image" : "activegrid.model.processmodel.Image",
- "ag:inputs" : "activegrid.model.processmodel.Inputs",
- "ag:label" : "activegrid.model.processmodel.Label",
- "ag:processmodel": "activegrid.model.processmodel.ProcessModel",
- "ag:processmodelref" : "activegrid.server.deployment.ProcessModelRef",
- "ag:query" : "activegrid.model.processmodel.Query",
- "ag:schemaOptions" : "activegrid.model.schema.SchemaOptions",
- "ag:schemaref" : "activegrid.server.deployment.SchemaRef",
- "ag:set" : "activegrid.model.processmodel.SetOperation",
- "ag:text" : "activegrid.model.processmodel.Text",
- "ag:title" : "activegrid.model.processmodel.Title",
- "ag:view" : "activegrid.model.processmodel.View",
- "bpws:case" : "activegrid.model.processmodel.BPELCase",
- "bpws:catch" : "activegrid.model.processmodel.BPELCatch",
- "bpws:faultHandlers" : "activegrid.model.processmodel.BPELFaultHandlers",
- "bpws:invoke" : "activegrid.model.processmodel.BPELInvoke",
- "bpws:onMessage" : "activegrid.model.processmodel.BPELOnMessage",
- "bpws:otherwise" : "activegrid.model.processmodel.BPELOtherwise",
- "bpws:pick" : "activegrid.model.processmodel.BPELPick",
- "bpws:process" : "activegrid.model.processmodel.BPELProcess",
- "bpws:receive" : "activegrid.model.processmodel.BPELReceive",
- "bpws:reply" : "activegrid.model.processmodel.BPELReply",
- "bpws:scope" : "activegrid.model.processmodel.BPELScope",
- "bpws:sequence" : "activegrid.model.processmodel.BPELSequence",
- "bpws:switch" : "activegrid.model.processmodel.BPELSwitch",
- "bpws:terminate" : "activegrid.model.processmodel.BPELTerminate",
- "bpws:variable" : "activegrid.model.processmodel.BPELVariable",
- "bpws:variables" : "activegrid.model.processmodel.BPELVariables",
- "bpws:while" : "activegrid.model.processmodel.BPELWhile",
- "wsdl:message" : "activegrid.model.processmodel.WSDLMessage",
- "wsdl:part" : "activegrid.model.processmodel.WSDLPart",
- "xforms:group" : "activegrid.model.processmodel.XFormsGroup",
- "xforms:input" : "activegrid.model.processmodel.XFormsInput",
- "xforms:label" : "activegrid.model.processmodel.XFormsLabel",
- "xforms:output" : "activegrid.model.processmodel.XFormsOutput",
- "xforms:secret" : "activegrid.model.processmodel.XFormsSecret",
- "xforms:submit" : "activegrid.model.processmodel.XFormsSubmit",
- "xs:all" : "activegrid.model.schema.XsdSequence",
- "xs:complexType" : "activegrid.model.schema.XsdComplexType",
- "xs:element" : "activegrid.model.schema.XsdElement",
- "xs:field" : "activegrid.model.schema.XsdKeyField",
- "xs:key" : "activegrid.model.schema.XsdKey",
- "xs:keyref" : "activegrid.model.schema.XsdKeyRef",
- "xs:schema" : "activegrid.model.schema.Schema",
- "xs:selector" : "activegrid.model.schema.XsdKeySelector",
- "xs:sequence" : "activegrid.model.schema.XsdSequence",
- "projectmodel" : "activegrid.tool.ProjectEditor.ProjectModel",
- }
-
-def defaultLoad(fileObject, knownTypes=None):
- xml = fileObject.read()
- loadedObject = defaultUnmarshal(xml, knownTypes=knownTypes)
- if hasattr(fileObject, 'name'):
- loadedObject.fileName = os.path.abspath(fileObject.name)
- loadedObject.initialize()
- return loadedObject
-
-def defaultUnmarshal(xml, knownTypes=None):
- if not knownTypes: knownTypes = AG_TYPE_MAPPING
- return xmlmarshaller.unmarshal(xml, knownTypes=knownTypes)
-
-def defaultSave(fileObject, objectToSave, prettyPrint=True, knownTypes=None, withEncoding=1, encoding='utf-8'):
- xml = defaultMarshal(objectToSave, prettyPrint=prettyPrint, knownTypes=knownTypes, withEncoding=withEncoding, encoding=encoding)
- fileObject.write(xml)
- fileObject.flush()
-
-def defaultMarshal(objectToSave, prettyPrint=True, knownTypes=None, withEncoding=1, encoding='utf-8'):
- if not knownTypes: knownTypes = AG_TYPE_MAPPING
- return xmlmarshaller.marshal(objectToSave, prettyPrint=prettyPrint, knownTypes=knownTypes, withEncoding=withEncoding, encoding=encoding)
-
-def clone(objectToClone, knownTypes=None, encoding='utf-8'):
- if not knownTypes: knownTypes = AG_TYPE_MAPPING
- xml = xmlmarshaller.marshal(objectToClone, prettyPrint=True, knownTypes=knownTypes, encoding=encoding)
- clonedObject = xmlmarshaller.unmarshal(xml, knownTypes=knownTypes)
- if hasattr(objectToClone, 'fileName'):
- clonedObject.fileName = objectToClone.fileName
- try:
- clonedObject.initialize()
- except AttributeError:
- pass
- return clonedObject