[cl-sockets-devel] Some additions to cl-soap

Alexander Kjeldaas alexander.kjeldaas at gmail.com
Mon Aug 21 01:18:24 UTC 2006


Hi,

I'm using cl-soap for a project and have added a few features I needed:

xsd:
o Handling annotation nodes (basically ignoring them when needed).
o Handling attributes
o Handling simple-content.
o Handling any-attribute (not handled by template/binding logic).
o Handling default/fixed values.
o Handling ref attributes (basically similar to the type attribute on elements).

templates:
o Attributes are represented by having the element name be a list.
   (1 "foo" :INTEGER) vs (1 ("foo" (? "attr1" :INTEGER)) :INTEGER)
o Default/fixed values are represented by overloading the multiplicity
   (1 ("foo" ("342" "attr1" :INTEGER)) :INTEGER)
   [multiplicity different from 1 makes no sense when a default value
    is given].

binding:
o Attribute bindings are represented as in lxml.

Supporting attributes means having to do a few changes.  For example,
we can have a complexType which is really a primitive type but with a
few attributes.  Example:

        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base='SomeRestrictedIntegerType'>
                    <xs:attribute fixed='1340' name='orid'
type='xs:positiveInteger' use='required'/>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>

Thus when looking for the content-type (the third element in the
template-triple), we need to try to resolve a bit harder than what we
otherwise do.  So you can now resolve the type of an element, but also
the content-type.  The latter will resolve through the complexType
example above.


misc other changes:
o https support using cl+ssl for sbcl (new dependency).
o use defparameter instead of defconstant (SBCL complains).
...


Sven, I know you are on vacation so I've put up a darcs repository at
http://www.pvv.org/~astor/cl-soap/ if anyone wants to have a look at
the patches.

Thanks,
Alexander



More information about the cl-soap-devel mailing list