src/Pure/PIDE/xml.scala
changeset 73340 0ffcad1f6130
parent 73204 aa3d4cf7825a
child 73359 d8a0e996614b
equal deleted inserted replaced
73339:9efdebe24c65 73340:0ffcad1f6130
   126 
   126 
   127   /** string representation **/
   127   /** string representation **/
   128 
   128 
   129   val header: String = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
   129   val header: String = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
   130 
   130 
   131   def output_char(s: StringBuilder, c: Char, permissive: Boolean = false)
   131   def output_char(s: StringBuilder, c: Char, permissive: Boolean = false): Unit =
   132   {
   132   {
   133     c match {
   133     c match {
   134       case '<' => s ++= "&lt;"
   134       case '<' => s ++= "&lt;"
   135       case '>' => s ++= "&gt;"
   135       case '>' => s ++= "&gt;"
   136       case '&' => s ++= "&amp;"
   136       case '&' => s ++= "&amp;"
   138       case '\'' if !permissive => s ++= "&apos;"
   138       case '\'' if !permissive => s ++= "&apos;"
   139       case _ => s += c
   139       case _ => s += c
   140     }
   140     }
   141   }
   141   }
   142 
   142 
   143   def output_string(s: StringBuilder, str: String, permissive: Boolean = false)
   143   def output_string(s: StringBuilder, str: String, permissive: Boolean = false): Unit =
   144   {
   144   {
   145     if (str == null) s ++= str
   145     if (str == null) s ++= str
   146     else str.iterator.foreach(output_char(s, _, permissive = permissive))
   146     else str.iterator.foreach(output_char(s, _, permissive = permissive))
   147   }
   147   }
   148 
   148 
   149   def output_elem(s: StringBuilder, markup: Markup, end: Boolean = false)
   149   def output_elem(s: StringBuilder, markup: Markup, end: Boolean = false): Unit =
   150   {
   150   {
   151     s += '<'
   151     s += '<'
   152     s ++= markup.name
   152     s ++= markup.name
   153     for ((a, b) <- markup.properties) {
   153     for ((a, b) <- markup.properties) {
   154       s += ' '
   154       s += ' '
   160     }
   160     }
   161     if (end) s += '/'
   161     if (end) s += '/'
   162     s += '>'
   162     s += '>'
   163   }
   163   }
   164 
   164 
   165   def output_elem_end(s: StringBuilder, name: String)
   165   def output_elem_end(s: StringBuilder, name: String): Unit =
   166   {
   166   {
   167     s += '<'
   167     s += '<'
   168     s += '/'
   168     s += '/'
   169     s ++= name
   169     s ++= name
   170     s += '>'
   170     s += '>'