2016-05-23 3 views
0

Я немного застрял в пространствах имен XML. Я хотел бы попросить немного помочь с этим.Работа с пространствами имен XMLDOM

Что мне нужно ... Мое пространство имен выглядит следующим образом:

<?xml version="1.0" encoding="iso-8859-2"?> 
<Application_data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 

То, что я сделал это:

procedure BeginExport; 
var 
    FOutputXML: IXMLDOMDocument; 
    vNode: IXMLDOMNode; 
begin 
    DoBeginBeginExport; 

    if FOutputXML = nil then 
    begin 
    FOutputXML := CoDOMDocument.Create; 
    FOutputXML.appendChild(FOutputXML.createProcessingInstruction('xml', 'version="1.0" encoding="iso-8859-2"'));  

    vNode := FOutputXML.appendChild(FOutputXML.createElement('Application_data')); 
    vNode.attributes.setNamedItem(vNode.ownerDocument.createAttribute('????')).text := '"http://www.w3.org/2001/XMLSchema-instance'; 

    end else FOutputXML.removeChild(FOutputXML.firstChild); 
    DoAfterBeginExport; 
end; 

С "Xmlns: XSI" после Createattribute не работает. Кто-нибудь может помочь мне, что я ошибся или что самый простой способ установить атрибут пространства имен?

+0

См. Http://stackoverflow.com/questions/6992597/ –

ответ

0

Я решил с этим, но я думаю, что это не лучшее решение.

//vAttr: IXMLDOMAttribute; 

vAttr := FOutputXML.createAttribute('xmlns:xsi'); 
vAttr.value := 'http://www.w3.org/2001/XMLSchema-instance'; 
vNode.attributes.setNamedItem(vAttr); 
vAttr := FOutputXML.createAttribute('xmlns:xsd'); 
vAttr.value := 'http://www.w3.org/2001/XMLSchema-instance'; 
vNode.attributes.setNamedItem(vAttr);