home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Komunikace / Comanche / libplugin / xmlPrinter.tcl < prev   
Text File  |  2000-11-02  |  1KB  |  58 lines

  1. # xmlPrinter.tcl --
  2. #
  3. # This class converts serializes xui objects into their XML representation
  4. # Problem is that objects' properties are not implemented in a one to one 
  5. # straightforward mapping. Which can be done for things like strings, etc
  6. # but not for lists, etc.
  7. # Problem is that if our element is a derived class with an special attribute 
  8. # we have to modify the parser.
  9. # (TO-DO: This is incomplete, it needs to be done with DOM calls if we want to
  10. # do it properly)
  11.  
  12. class xmlPrinter {
  13.  
  14.     # Are we printing the structure or the value
  15.     # Values: structure, value
  16.  
  17.     public variable state
  18.     variale doc
  19.     method init { doc }
  20.     method enterState {state}
  21.     method visitorString { xuiObject }
  22.     method visitorNumber { xuiObject }
  23.     method visitorLabel { xuiObject }
  24.     method visitorStructure { xuiObject }
  25.     method visitorList { xuiObject }
  26.     public proc serializeStringValue
  27.     public proc serializeString
  28.     public proc serializeStructureValue
  29.     public proc serializeStructure
  30.     public proc serializeList
  31.     public proc serializeListValue
  32. }
  33.  
  34.  
  35. body xmlPrinter::visitorString {xuiObject} {
  36.     switch $state {
  37.     definition {
  38.         return [serializeString ]
  39.     } value {
  40.         set result ""
  41.         set name [$xuiObject getName]
  42.         append result "<$name>[serializeStringValue $xuObject]</$name>"
  43.     } onlyValue {
  44.         
  45.     }
  46.     }
  47. }
  48.  
  49.  
  50. prox xmlPrinterserializeString 
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.