DanBri's SOAP data model notes

*disclaimer*
This is my work-in-progress understanding of what the SOAP data model
amounts to; it doesn't reflect the views of the XML Protocol WG, and may
quite likely not reflect the reality of the SOAP 1.2 spec either. Consider
it my 'learning about SOAP in public' exercise...

It is couched in terms of candidate text for the 'soap data model' bit of
the spec, though I'm well aware it's too rough to be considered for that.

--danbri



DanBri's SOAP Data Model notes
==============================

The SOAP data model is a subset of the Directed Labeled Graph (DLG) class
of data models. As such it provides a simple type system that is a
generalization of common features found in type systems in
programming languages, databases and semi-structured data. Edges in the
graph are labelled with simple ("locally scoped") string values or
("globally scoped") URI-qualified names corresponding to the XML namespace
mechanism. Nodes in the graph are either simple (datatyped) values or
represent complex objects that are described by an aggregation of
relations (labeled edges) to other values.

The SOAP data model abstracts away from the details of the referencing
mechanisms (such as XML ID/IDREF, URI, XML element containment) that
support any particular concrete encoding of a SOAP data graph. SOAP data
model instances, regardless of encoding format, can be merged to aggregate
the encoded information by folding together the abstract edge-labeled data
graphs. Globally scoped (URI-named) edges and nodes provide one
of many strategies to support SOAP data model merging.

The SOAP data model provides an abstract view of XML-encodable
data graphs, represented as an unordered set of node-edge-node 3-tuples.
XML serializations of the SOAP data model are by
necessity ordered. All concrete XML encodings of the SOAP data model must
therefore specify the significance of document (Infoset) ordering with
respect to the abstract edge-labeled graph model. Within a compound value
(complex node), each relation to another node is potentially distinguished by a
role name, ordinal or both. In this latter case, the edge name itselfs
corresponds to a pair of ordinal and role name. (@@hmm, not sure here...)

The SOAP data model is consistent with, but does not specify, a number of
mechanisms for describing a "DLG Schema" corresponding to
meta-information about node and edges types in the SOAP data graph. UML,
RDF and other representational formalisms may provide additional
information about the node and edge types that occur in a SOAP data
model instance. SOAP does not mandate the use of any particular mechanism
for this. DLG-schema information can be used to support the concrete
serialization of SOAP data graphs into XML, for example by providing
information about cardinality or domain and range constraints on
(globally scoped) edge types.

[...etc. lots of material from SOAP Encoding spec missing here]

Received on Thursday, 18 October 2001 08:30:57 UTC