qivi писал(а):1. вообще является XML (на случай если ктото подсунет программе какойнибудь принципиально др. файл);
Начнём с того, что в этом случае файл вообще открыть не удастся. Вылетит ошибка, значит нам её надо отловить:
- Код: Выделить всё
Program readxml;
Uses DOM, XMLRead, SysUtils;
Var
xdoc: TXMLDocument;
Begin
Try
ReadXMLFile(xdoc, './jopa.xml');
Except
on E: EXMLReadError do
WriteLn('Это фигня какая-то, а не файл xml...');
WriteLn(E.Message);
End;
WriteLn(xdoc.XMLVersion);
End.
qivi писал(а):2. что структура его соответствует структуре XML файлов создаваемых моей программой?
С этим сложнее. Здесь уже Ваша программа, после отурытия файла, должна проверить в нём наличие (как минимум) требуемых секций и требуемых ключей в секциях.
К примеру, можно убедится в наличие всех ключей с помощью метода
TXMLDocument.GetElementsByTagNmae(TagName) : TDOMNodeList;
и сравнивать все TDOMNodeList.Item[n] с заранее предопределённым списком.
Честно говоря, никогда раньше не интересовался подобной проблемой, поэтому не утверждаю, что данный способ оптимален (т.е. с минимальными кодозатратами

), может кто-то что-то другое предложит.
Добавлено спустя 29 минут 45 секунд:Sergei I. GorelkinА XML Schema сейчас поддерживается в FPC? Что-то я нигде не нашёл упоминаний...