[cl-soap-cvs] CVS update: cl-soap/src/xsd.lisp
Sven Van Caekenberghe
scaekenberghe at common-lisp.net
Mon Sep 26 08:43:57 UTC 2005
Update of /project/cl-soap/cvsroot/cl-soap/src
In directory common-lisp.net:/tmp/cvs-serv12562/src
Modified Files:
xsd.lisp
Log Message:
fixed xsd primitive handling of false boolean
Date: Mon Sep 26 10:43:57 2005
Author: scaekenberghe
Index: cl-soap/src/xsd.lisp
diff -u cl-soap/src/xsd.lisp:1.11 cl-soap/src/xsd.lisp:1.12
--- cl-soap/src/xsd.lisp:1.11 Sun Sep 25 14:44:18 2005
+++ cl-soap/src/xsd.lisp Mon Sep 26 10:43:56 2005
@@ -1,6 +1,6 @@
;;;; -*- mode: lisp -*-
;;;;
-;;;; $Id: xsd.lisp,v 1.11 2005/09/25 12:44:18 scaekenberghe Exp $
+;;;; $Id: xsd.lisp,v 1.12 2005/09/26 08:43:56 scaekenberghe Exp $
;;;;
;;;; A partial implementation of the XML Schema Definition standard
;;;;
@@ -357,12 +357,14 @@
(defun new-lxml-primitive-value (name type lxml namespace)
(let ((tag-name (intern name (s-xml:get-package namespace))))
- (when (eql (lxml-get-tag lxml) tag-name)
- (xsd-primitive->lisp (second lxml) (intern-xsd-type-name type)))))
+ (if (eql (lxml-get-tag lxml) tag-name)
+ (values (xsd-primitive->lisp (second lxml) (intern-xsd-type-name type)) t)
+ (values nil nil))))
(defun new-resolve-primitive (element type-name lxml namespace)
- (let ((value (new-lxml-primitive-value (get-name element) type-name lxml namespace)))
- (if value
+ (multiple-value-bind (value present)
+ (new-lxml-primitive-value (get-name element) type-name lxml namespace)
+ (if present
(values value t)
(if (is-optional-p element)
(values nil nil)
@@ -413,8 +415,7 @@
(push member-value resolved-members))))))))
(values (nreverse resolved-members) t))
(if (xsd-primitive-type-name-p type)
- (let ((value (new-lxml-primitive-value (get-name super-element) type lxml namespace)))
- (if value (values value t) (values nil nil)))
+ (new-lxml-primitive-value (get-name super-element) type lxml namespace)
(error "unexpected type")))))
(defun new-resolve-element (element lxml xml-schema-definition namespace)
More information about the Cl-soap-cvs
mailing list