Add unparser for RDF literals.
authorChris Hanson <org/chris-hanson/cph>
Thu, 22 Jun 2006 18:35:27 +0000 (18:35 +0000)
committerChris Hanson <org/chris-hanson/cph>
Thu, 22 Jun 2006 18:35:27 +0000 (18:35 +0000)
v7/src/xml/rdf-struct.scm

index 22bb05652f72945e1f318b4f4dfc19fdbd33b0ea..7813679a5cf408b9696ca467cdb7e40ad56e51dd 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: rdf-struct.scm,v 1.7 2006/06/22 04:48:28 cph Exp $
+$Id: rdf-struct.scm,v 1.8 2006/06/22 18:35:27 cph Exp $
 
 Copyright 2006 Massachusetts Institute of Technology
 
@@ -49,10 +49,9 @@ USA.
 (define-guarantee rdf-bnode "RDF bnode")
 
 (set-record-type-unparser-method! <rdf-bnode>
-  (standard-unparser-method 'RDF-BNODE
-    (lambda (bnode port)
-      (write-char #\space port)
-      (write (rdf-bnode-name bnode) port))))
+  (simple-unparser-method 'RDF-BNODE
+    (lambda (bnode)
+      (rdf-bnode-name bnode))))
 
 (define (make-rdf-bnode #!optional name)
   (%make-rdf-bnode
@@ -75,6 +74,14 @@ USA.
 
 (define-guarantee rdf-literal "RDF literal")
 
+(set-record-type-unparser-method! <rdf-literal>
+  (simple-unparser-method 'RDF-LITERAL
+    (lambda (literal)
+      (list (let ((s (rdf-literal-text literal)))
+             (if (fix:<= (string-length s) 64)
+                 s
+                 (string-append (string-head s 60) " ...")))))))
+
 (define (make-rdf-literal text type)
   (guarantee-utf8-string text 'RDF-LITERAL)
   (%make-rdf-literal text