private function createElement($name, $value = null, $raw = false)
 {
     if (is_null($value)) {
         $element = $this->dom->createElement($name);
     } elseif ('long-description' !== $name && strlen($value) > 0 && '<' === $value[0]) {
         // Skip long descriptions as they should always be inserted as elements and escaped.
         // This is terrible, but if first char looks like it's XML then just append the fragment.
         // This is to append pre-built XML from objects.
         $element = $this->dom->createDocumentFragment();
         $element->appendXML('<' . $name . '>' . $value . '</' . $name . '>');
     } else {
         $value = $raw ? Xml::sanitise($value) : Xml::escape($value);
         $element = $this->dom->createElement($name, $value);
     }
     return $element;
 }
 public function testSanitise()
 {
     $invalidChar = chr(30);
     // Record Separator.
     $this->assertEquals('Foo Bar', Xml::sanitise('Foo' . $invalidChar . 'Bar'));
 }