Beispiel #1
0
 /**
  * Permet de créer le xsd contenant la définition d'élément pour tester les types
  *
  * @param String $nameFile String
  * @param String $glob     String
  *
  * @return bool
  */
 static function createTestSchemaClasses($nameFile, $glob)
 {
     $dom = new CMbXMLDocument("UTF-8");
     //On enregistre pas les nodeText vide
     $dom->preserveWhiteSpace = false;
     $dom->load($nameFile);
     //on récupère tous les élements
     $xpath = new CMbXPath($dom);
     $nodeList = $xpath->query("//xs:element");
     //on supprime tous les élements du fichier
     foreach ($nodeList as $_node) {
         $dom->documentElement->removeChild($_node);
     }
     //On sauvegarde le fichier sans élément
     file_put_contents($nameFile, $dom->saveXML());
     //on récupère tous les class existant dans les dossier voc, base, datatype
     $file = glob($glob, GLOB_BRACE);
     /**
      * Pour chacun des fichier on créé un élément avec sont type correspondant
      */
     foreach ($file as $_file) {
         //on créé l'élément
         $element = $dom->addElement($dom->documentElement, "xs:element");
         //on formatte le nom du fichier
         $_file = CMbArray::get(explode(".", $_file), 0);
         $_file = substr($_file, strrpos($_file, "/") + 1);
         //on créé une instance de la classe
         /** @var CCDAClasseBase $instanceClass */
         $instanceClass = new $_file();
         //on récupère le nom quisera égale au type et au nom de l'élément
         $_file = $instanceClass->getNameClass();
         //On ajoute les attribut type et nom
         $dom->addAttribute($element, "name", $_file);
         $dom->addAttribute($element, "type", $_file);
         //On ajoute un saut de ligne dans le schéma
         $dom->documentElement->appendChild($dom->createTextNode("\n"));
     }
     //on sauvegarde le fichier
     file_put_contents($nameFile, $dom->saveXML());
     return true;
 }
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  $Revision$
 * @link     http://www.mediboard.org
 */
CCanDo::checkRead();
$modele_id = CValue::get("modele_id");
$modele = new CCompteRendu();
$modele->load($modele_id);
$modele->loadContent(true);
$doc = new CMbXMLDocument(null);
$root = $doc->createElement("CCompteRendu");
$doc->appendChild($root);
foreach (CCompteRendu::$fields_import_export as $_field) {
    ${$_field} = $doc->createElement($_field);
    $textnode = $doc->createTextNode(utf8_encode($modele->{$_field}));
    ${$_field}->appendChild($textnode);
    $root->appendChild(${$_field});
}
// Attribut modele_id
$key = $doc->createAttribute("modele_id");
$value = $doc->createTextNode($modele->_id);
$key->appendChild($value);
$root->appendChild($key);
// Catégorie
$cat = $modele->loadRefCategory();
$key = $doc->createAttribute("cat");
$value = $doc->createTextNode(utf8_encode($cat->nom));
$key->appendChild($value);
$root->appendChild($key);
$content = $doc->saveXML();