XML Datei exportieren Probleme mit DOM und Namespace

20. März 2012 17:34

Hallo,

ich habe folgendes Problem. Ich versuche manuell ein XML Dokument zu erstellen.
Dafür verwende ich die unten stehenden Datentypen (Automations).
Das was nicht passt ist das Attribut xmlns beim Node ORDER_HEADER.
Ich habe es gar nicht angelegt. Sobald das Objekt ein Attribut xmlns im Root-Node sieht,
packt es mir in die Child-Nodes.
Ich habe alles versucht, über objekte dynamisch anzubinden. Verschidene versionen vom DOMDocument,
das Code Unit XML Dom... hat nicht geholfen. Wäre super wenn jemand wüste wie das geht.
(Classic Client)

Danke im Voraus.
A

--------------------------------------------------Locals
Name DataType Subtype Length
L_DataXML Automation 'Microsoft XML, v6.0'.DOMDocument60
L_XMLElement Automation 'Microsoft XML, v6.0'.IXMLDOMElement
L_XMLAttribute Automation 'Microsoft XML, v6.0'.IXMLDOMAttribute
L_XMLNode Automation 'Microsoft XML, v6.0'.IXMLDOMNode
L_XMLOrderHeader Automation 'Microsoft XML, v6.0'.IXMLDOMNode
L_XMLOrderItemList Automation 'Microsoft XML, v6.0'.IXMLDOMNode
L_XMLOrderSummary Automation 'Microsoft XML, v6.0'.IXMLDOMNode
------------------------------------------------C/AL CODE

L_DataXML.loadXML('<ORDER xmlns="test"/>');

L_XMLNode := L_DataXML.documentElement;

L_XMLOrderHeader := L_DataXML.createNode(1,'ORDER_HEADER','');
L_XMLNode.appendChild(L_XMLOrderHeader);

------------------------------------------------XML Datei
<?xml version="1.0"?>
-<ORDER xmlns="test">
<ORDER_HEADER xmlns=""/>
</ORDER>

Re: XML Datei exportieren Probleme mit DOM und Namespace

19. September 2012 11:03

Wie bekommt man denn die erste Zeile
"<?xml version=...>

in die XML-Datei?

Re: XML Datei exportieren Probleme mit DOM und Namespace

19. September 2012 13:10

In den BizTalk Codeunits gibt es ein Block wo per C/AL XML-Dokumente erzeugt werden. Daran kann man sich gut orientieren.

Re: XML Datei exportieren Probleme mit DOM und Namespace

20. September 2012 13:13

Ja, hab ich schon gesehen.
Ich habe einen ähnlichen Code wie oben angegeben. Wie hat er denn die erste Zeile da rein bekommen???

<?xml version="1.0"?>

Kann mal jemand an dem Beispiel von oben den Code veröffentlichen?

Re: XML Datei exportieren Probleme mit DOM und Namespace

8. Oktober 2012 13:37

Grüß Dich :)

Ich arbeite zB mit der CU "XML DOM Management", diese Methode hier "xmlDoc.createProcessingInstruction".
xmlDoc ist ein Automatition:
'Microsoft XML, v6.0'.DOMDocument

Code:
    PfadDateiTxt := EinrRec.Ausgabepfad + '_' + ZeitStempelTxt + '.xml';

    // Doc erstellen
    IF NOT CREATE(xmlDoc) THEN BEGIN
      CLEAR(xmlDoc);
      CREATE(xmlDoc)
    END;

    xmlMgt.SetNormalCase;
    xmlDoc.createProcessingInstruction('xml','version="1.0"');

    CurrNode := xmlDoc.appendChild(xmlProcessingInst);
    CurrNode := xmlDoc.createElement('Projekt');
    CurrNode := xmlDoc.appendChild(CurrNode);

    // Header +++++
    // Kopfdaten
    xmlMgt.AddElement(CurrNode,'Kopfdaten','','',NewChild);
      CurrNode1:=NewChild; //One level deeper
        xmlMgt.AddElement(CurrNode1,'Version','1.1','',NewChild);
        xmlMgt.AddElement(CurrNode1,'DatumDateierzeugung',vDatum,'',NewChild);
        xmlMgt.AddElement(CurrNode1,'phase','xx1','',NewChild);
        xmlMgt.AddElement(CurrNode1,'Absender','Nav','',NewChild);
        xmlMgt.AddElement(CurrNode1,'Benutzer',vUser,'',NewChild);
         // Header -----
xmlDoc.save(PfadDateiTxt);


Hoffe konnte helfen :mrgreen:

Re: XML Datei exportieren Probleme mit DOM und Namespace

8. Oktober 2012 14:03

XML Dom Management ist eine BizTalk Codeunit und kann nur benutzt werden, wenn der Kunde das entsprechende Modul lizensiert hat.

Re: XML Datei exportieren Probleme mit DOM und Namespace

8. Oktober 2012 14:11

Danke für die Info.

Derzeit bin ich nur im "lokalen" test hier bei mir. Es klappt alles soweit wie ich möchte, halt nur nicht, dass ich sehr lange Texte in ein XML Tag schreiben kann.

Da xml Dateien lange Texte unterstützen, denke ich, dass es irgendwie gehen wird, ...halt nur wie.
Den Text zunächst in ein BLOB Feld schreiben und das exportieren? ...nur wie?

Re: XML Datei exportieren Probleme mit DOM und Namespace

8. Oktober 2012 14:16

Du musst erstmal verraten, woher so ein langer text kommen soll. Es gibt ja keine unendlich langen Text-Felder in NAV.

Re: XML Datei exportieren Probleme mit DOM und Namespace

8. Oktober 2012 14:27

Oh, da ist auch fast mein Thema:

Ich habe die Aufgabe eine pdf-Datei in eine XML-Datei zu bringen.
Also Name der Datei und die Datei selbst.
Das ganze im Base64 Code.

Hat jemand ne Idee oder am besten einen C/AL- Code als Beispiel?