| <?xml version="1.0"?> | |
| [%=Document.allInstances().first().rootElement.toString(0)%] | |
| [% | |
| operation Element toString(indent : Integer) : String { | |
| var str : String; | |
| str = indent.getIndent() + '<' + self.name.normalize(); | |
| for (a in self.attributes) { | |
| str = str + ' ' + a.name.normalize() + '="' + | |
| a.value.normalize() + '"'; | |
| if (hasMore){ | |
| str = str + ' '; | |
| } | |
| } | |
| str = str + '>\r\n'; | |
| for (c in self.contents) { | |
| str = str + c.toString(indent + 1); | |
| } | |
| str = str + indent.getIndent() + '</' + self.name.normalize() + '>\r\n'; | |
| return str; | |
| } | |
| operation Text toString(indent : Integer) : String { | |
| return (indent + 1).getIndent() + self.cdata.normalize() + '\r\n'; | |
| } | |
| operation Integer getIndent() : String { | |
| var indent : String; | |
| for (i in 1.to(self)){ | |
| indent = indent + ' '; | |
| } | |
| return indent; | |
| } | |
| operation String normalize() { | |
| var normalized : String = self; | |
| if (not normalized.isDefined()) { | |
| normalized = ''; | |
| } | |
| else { | |
| normalized = normalized.replace('<', '<'); | |
| normalized = normalized.replace('>', '>'); | |
| -- etc | |
| } | |
| return normalized; | |
| } | |
| %] |