webForumDet fria alternativet

Lägga till dtd-referens med MSXML

XML

2 svar · 539 visningar · startad av @nders

Medlem sedan juni 200032 967 inlägg
Frågan#1

Hej!

Jag har ett XMLDOM-objekt som jag skapat i COM.
Till detta vill jag lägga en referens till en DTD för att sedan, i COM kunna validera XML:en.
Jag har sökt, men inte lyckats hitta hur jag gör detta med MSXML. Det verkar bara finnas readonly-properties som returnerar information om den DTD som refereras till i XML-objektet, men att lägga till verkar vara omöjligt?!?

Ungefär så här ser det ut (fetmarkerat med ungefär hur jag vill göra)

        Set objDOM = New MSXML2.DOMDocument
        Set objOrder = objDOM.createElement("ORDER")
        objDOM.appendChild objOrder
        
        objOrder.setAttribute "MsgID", "DK8675645342"
        objOrder.setAttribute "Sender", "44532"
        objOrder.setAttribute "Source", "WEBORDER"
	[b]objOrder.AddDTDReference "ORDERS SYSTEM", "http://foo.bar/dtdservice/foobar.dtd"[/b]

Jag vill alltså ha ut följande i mitt XML-dokument:

<!DOCTYPE ORDERS SYSTEM "http://foo.bar/dtdservice/foobar.dtd">
<ORDER MsgID="DK8675645342" Sender="44532" Source="WEBORDER"/>

Jag vill gärna slippa plocka ut all xml som en sträng och lägga till en sträng med dtd-deklarationen i.

Några idéer?

Mvh och tpf

Medlem sedan juni 20022 599 inlägg
#2

Not looking good ..

Note that you can NOT edit/update or delete the <!DOCTYPE ...> line using DOM.

http://www.perfectxml.com/msxmlAnswers.asp?Row_ID=74

Medlem sedan juni 200032 967 inlägg
#3

Usch, det var trist, men det är tur att det finns alternativa sätt att lösa det på.

Tack så mycket för länken!

Edit: tyvärr kan jag inte använda schema istället för dtd, det skulle jag hellre gjort.

Mvh

270 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)