A Simple Object Definition Language (SODL)

Jonathan A. Borden (jborden@mediaone.net)
Mon, 28 Sep 1998 12:16:28 -0400


A Simple Object Description Language (SODL)

This is a very simple way to reprasent objects in XML. This representatio=
n
is compatible with Microsoft's typelibrary which is a binary format. The
element "type" was intended to use definitions from XML-Data but if XML-D=
ata
isn't going anywhere we may need to include a "mini-XML-Data" within the
SODL DTD.

SODL is related to XML-RPC in that objects are defined as being composed =
of
interfaces (i.e. interfaceDef's). This approach to object definition is
taken because it is compatible with several of the XML-RPC efforts includ=
ing
John Tigue's as well as being compatible with Microsoft's COM.
First an example, then the DTD:

<objectDef uid=3D"=85" name=3D"JABR.DataObject">
<interfaceDef uid=3D"=85" name=3D"IJABRDataInterface">
<property>
<name>Y</name>
<value><i4>345667</i4></value>
</property>
<property id=3D"1">
<value><string>An unnamed property</string></value>
</property>
</interfaceDef>
</objectDef>

----DTD-Part-Here:-)

<!ELEMENT interfaceDef (name,derivedFrom,(property|method)*)>
<!ATTLIST interfaceDef
uid CDATA #required
version CDATA "1.0"
>
<!ELEMENT property (name,params?)>
<!ATTLIST property id CDATA ""
access (get|put|getput) "getput"
description CDATA ""
>
<!ELEMENT method (name,params?>
<!ATTLIST method id CDATA ""
description CDATA ""
>
<!ELEMENT params (param*)
<!ELEMENT param (name, type)>
<!ATTLIST param
type (in|out|inout|retval) #required
id CDATA ""
>
<!ELEMENT name #PCDATA>
<!ELEMENT derivedFrom #PCDATA>
<!ELEMENT type (long|short|string|bool ..)>
<!- types from XML-data to be used here ->
<!ELEMENT objectDef (interfaceDef+,other)>
<!ATTLIST objectDef
uid CDATA #required
name CDATA #required
transacted (not|supports|required|new) "not">

Jonathan Borden
JABR Technology Corp.
jborden@mediaone.net