Define xml-char? and use it in favor of unicode-char?.
authorChris Hanson <org/chris-hanson/cph>
Thu, 16 Feb 2017 02:52:17 +0000 (18:52 -0800)
committerChris Hanson <org/chris-hanson/cph>
Thu, 16 Feb 2017 02:52:17 +0000 (18:52 -0800)
src/xml/xml-chars.scm
src/xml/xml-struct.scm
src/xml/xml.pkg

index 692698e3ce3e337102a72c144c9f137da1d16549..42996cd7282ebfeb1a8dda8494350000782cff9f 100644 (file)
@@ -378,6 +378,9 @@ USA.
      (#xE000 . #xFFFE)
      (#x10000 . #x110000))))
 
+(define xml-char?
+  (char-set-predicate char-set:xml-char))
+
 (define char-set:char-data
   (char-set-difference char-set:xml-char
                       (string->char-set "<&")))
index ad2ab282066b2e2d22fa552fce7ffd4cbe2f8e00..44804db2e88927d540d913d05deb9c6efadfa395 100644 (file)
@@ -163,17 +163,15 @@ USA.
   (value canonicalize canonicalize-char-data))
 
 (define (xml-char-data? object)
-  (or (unicode-char? object)
+  (or (xml-char? object)
       (and (ustring? object)
            (string-of-xml-chars? object))))
 
 (define (string-of-xml-chars? string)
-  (ustring-every (char-set-predicate char-set:xml-char) string))
+  (ustring-every xml-char? string))
 
 (define (canonicalize-char-data object)
-  (cond ((unicode-char? object)
-         (if (not (char-in-set? object char-set:xml-char))
-            (error:wrong-type-datum object "well-formed XML char data"))
+  (cond ((xml-char? object)
          (ustring object))
        ((ustring? object)
         (if (not (string-of-xml-chars? object))
index 9c53b1dd9a5b0a8b3717061cda06b0296cdf136e..68c9a743aabe3df5f2b7a546bfe9b647cc0b00f0 100644 (file)
@@ -38,7 +38,8 @@ USA.
   (parent (runtime xml))
   (export ()
          char-set:xml-char
-         char-set:xml-whitespace)
+         char-set:xml-whitespace
+         xml-char?)
   (export (runtime xml)
          char-set:char-data
          char-set:name-initial