Example #1
0
 /**
  * Return a clone of the document>.
  *
  * @return SuiteDocument
  */
 public function duplicate()
 {
     $document = new self();
     $node = $document->importNode($this->firstChild, true);
     $document->appendChild($node);
     return $document;
 }
Example #2
0
 /**
  * @param array $list
  * @return XsSequence
  * @throws UnknownSequenceItemException
  */
 public static function fromArray(array $list)
 {
     /** @var DOMDocument $sequence */
     $sequence = new self();
     foreach ($list as $item) {
         if (is_scalar($item)) {
             // do not use nodeValue
             // https://bugs.php.net/bug.php?id=31613
             $child = $sequence->createElementNs(XmlSchema::URI, 'xs:item');
             $child->setAttribute('type', gettype($item));
             $child->textContent = $item;
             $sequence->documentElement->appendChild($child);
         } elseif ($item instanceof DOMElement) {
             $child = $sequence->importNode($item, true);
             $sequence->documentElement->appendChild($child);
         } elseif ($item instanceof DOMAttr) {
             $child = $sequence->createElementNs(XmlSchema::URI, 'xs:item', $item->nodeValue);
             $child->setAttribute('type', gettype($item));
             $sequence->documentElement->appendChild($child);
         } else {
             // @codeCoverageIgnoreStart
             throw new UnknownSequenceItemException();
             // @codeCoverageIgnoreEnd
         }
     }
     return $sequence;
 }
Example #3
0
 /**
  *
  * @return XMLDom
  */
 public static function adapt(\DOMDocument $dom)
 {
     $new = new self();
     foreach ($dom->childNodes as $child) {
         $n = $new->importNode($child, true);
         if ($n) {
             $new->appendChild($n);
         }
     }
     return $new;
 }
Example #4
0
 /**
  * @param array $list
  * @return XsSequence
  * @throws UnknownSequenceItemException
  */
 public static function fromArray(array $list)
 {
     /** @var DOMDocument $sequence */
     $sequence = new self();
     foreach ($list as $item) {
         if (is_scalar($item)) {
             $child = $sequence->createElementNs(XmlSchema::URI, 'xs:item', $item);
             $child->setAttribute('type', gettype($item));
             $sequence->documentElement->appendChild($child);
         } elseif ($item instanceof DOMNode && $item->prefix === 'xs') {
             $child = $sequence->importNode($item, true);
             $sequence->documentElement->appendChild($child);
         } else {
             // @codeCoverageIgnoreStart
             throw new UnknownSequenceItemException();
             // @codeCoverageIgnoreEnd
         }
     }
     return $sequence;
 }
Example #5
0
 public function duplicate()
 {
     $dom = new self();
     $firstChild = $dom->importNode($this->firstChild, true);
     $dom->appendChild($firstChild);
     return $dom;
 }