[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