Мне нужно добавить поле "! ENTITY" в мой документ, но я не могу найти правильный способ сделать это. В основном мой код в настоящее время дает следующий результат:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg/>
В то время как результат, который я хочу получить, следующий:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_svg "http://www.w3.org/2000/svg">
<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
</svg>
Мой текущий код такой:
procedure TSVGContainer.SaveToFile(Filename: String);
var XMLDoc: IXMLDocument;
DomImpl: IDOMImplementation;
DocType : IDOMDocumentType;
begin
XMLDoc := NewXMLDocument;
DomImpl := GetDOM(sAdom4XmlVendor);
XMLDoc.Encoding := 'utf-8';
DocType := DomImpl.createDocumentType('svg', '-//W3C//DTD SVG 1.1//EN', 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd');
XMLDoc.DOMDocument := DomImpl.createDocument('http://www.w3.org/2000/svg', 'svg', DocType);
XMLDoc.Options := XMLDoc.Options+[doNodeAutoIndent];
XMLDoc.SaveToFile(Filename);
end;