[gelöst] XML-Attribut: 'xsi:schemaLocation'

3. Juni 2009 09:50

Hallo!
Ich habe ein Problem mit einer XML-Datei. Ein Attibut wird mir nicht richtig geschrieben.
Hat wer eine Idee, wie ich das hinbekommen kann???

Code:
        TVAMain = doc.createNode(XmlNodeType::Element, 'TVAMain', '');
        TVAMain.setAttribute('xmlns', 'urn:tva:metadata:2002');
        TVAMain.setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
        TVAMain.setAttribute('xsi:schemaLocation', 'urn:tva:metadata:2002 dataimport/tva_metadata_v13.xsd');
        doc.appendChild(TVAMain);


Es geht um die Zeile:
Code:
        TVAMain.setAttribute('xsi:schemaLocation', 'urn:tva:metadata:2002 dataimport/tva_metadata_v13.xsd');


In der Datei steht dann:
<TVAMain xmlns="urn:tva:metadata:2002" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="urn:tva:metadata:2002 dataimport/tva_metadata_v13.xsd">


Wem es nicht gleich auffällt - hier das Problem:
In dem betreffenden Attribut steht 'xsi:schemaLocation' - ausgegeben wird mir aber nur schemaLocation ohne xsi:.
Wenn ich den ":" durch ein "_" ersetze bekomme ich die Ausgabe xsi_schemaLocation. So bringt mir das aber nichts.

Hat jemand eine Idee, wie ich das trotzdem richtig in die Datei bringen kann??
Andere Attribute, wie Beispielsweise xmlns:xsi gibt er ja auch richtig aus!?

DANKE!!!
Zuletzt geändert von thias78 am 3. Juni 2009 15:38, insgesamt 1-mal geändert.

Re: XML-Attribut: 'xsi:schemaLocation'

3. Juni 2009 15:21

Ein interessantes Problem, hier gibt es wohl ganz unten die Lösung:

http://forums.asp.net/t/1160453.aspx

Re: XML-Attribut: 'xsi:schemaLocation'

3. Juni 2009 15:37

ich habe es jetzt so gelöst:

Code:
void exportXMLFile()
{
        //variablen declarieren
        ...
        XMLDocument            doc;
        str                    docedit;
        ;
       
        //xml dokument erzeugen wie gewohnt
        ...
        ...

        docedit = doc.xml();

        //zwischen den zeichen 131 und 132 werden die fehlenden zeichen "xsi:" eingefügt
        docedit = substr(docedit,1,131) + 'xsi:' + substr(docedit,132,strlen(docedit)-131);

        doc.innerXml(docedit);

        doc.save(filePath + fileName);
}