1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
package provide xotcl::rdf::recreatorVisitor 1.0
package require -exact xotcl::rdf::parser 1.0
package require -exact xotcl::xml::recreatorVisitor 1.0
package require XOTcl 1
namespace eval ::xotcl::rdf::recreatorVisitor {
namespace import ::xotcl::*
##############################################################################
#
# a visitor that recreates an RDF representation from a
# node tree
#
#############################################################################
Class RDFRecreatorVisitor -superclass XMLRecreatorVisitor
RDFRecreatorVisitor instproc appendLineFeed obj {
if {[set parseType [$obj getRDFAttribute parseType]] != ""} {
if {$parseType ne "Resource"} {
# we have parseType == Literal
# -> don't append "\n"
return ""
}
}
return "\n"
}
RDFRecreatorVisitor instproc visit objName {
next
my instvar result
if {[$objName istype RDFResource]} {
foreach t [$objName array names rdfTypes] {
set ts [$objName prependRDFPrefix type]
append result " [my insertIndent $objName]<$ts resource=\"$t\"/>\n"
}
}
return $result
}
namespace export RDFRecreatorVisitor
}
namespace import ::xotcl::rdf::recreatorVisitor::*
|