Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / доступ к параметрам XSD / 3 сообщений из 3, страница 1 из 1
22.12.2009, 13:12
    #36379693
dit
dit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
доступ к параметрам XSD
Имеется XSD, с описание элемента в виде:

<xs:element name="NAME_ELEMENT" type="TYPE_ELEMENT">
<xs:annotation>
<xs:documentation>DESCRIPTION_ELEMENT</xs:documentation>
</xs:annotation>
</xs:element>

Проверяю XML на соответствие XSD, используя msxml6

var xmlDoc : IXMLDOMDocument3;
xsdDoc : IXMLDOMSchemaCollection2;
xmlErr : IXMLDOMParseError2;

begin
xmlDoc:=CoDOMDocument60.Create;
xmlDoc.async:=False;
xmlDoc.validateOnParse:=False;
xmlDoc.setProperty('MultipleErrorMessages',True);
xmlDoc.load(FileName);

xsdDoc:=CoXMLSchemaCache60.Create;
xsdDoc.add('','SHEMA.xsd');

xmlDoc.schemas:=xsdDoc;
xmlErr:=xmlDoc.validate as IXMLDOMParseError2;

for i:=0 to xmlErr.allErrors.length-1 do begin
for j:=0 to xmlErr.allErrors.item[i].errorParametersCount-1 do
str:=str+#10#13+'Параметр'+IntToStr(j)+' '+xmlErr.allErrors.item[i].errorParameters(j)+#10#13;

ShowMessage(str+#10#13+
'CODE '+#10#13+IntToStr(xmlErr.allErrors.item[i].errorCode)+#10#13+
'ERRORXPATH '+#10#13+xmlErr.allErrors.item[i].errorXPath+#10#13+
'REASON '+#10#13+xmlErr.allErrors.item[i].reason+#10#13+
'SRCTEXT '+#10#13+xmlErr.allErrors.item[i].srcText+#10#13+
'URL '+#10#13+xmlErr.allErrors.item[i].url+#10#13+
'LINE '+#10#13+IntToStr(xmlErr.allErrors.item[i].line)+#10#13+
'LINEPOS '+#10#13+IntToStr(xmlErr.allErrors.item[i].linepos)+#10#13+
'FILEPOS '+#10#13+IntToStr(xmlErr.allErrors.item[i].linepos));
end;
end;

Все работает. Как мне вывести DESCRIPTION_ELEMENT из <xs:documentation>?
Плиз, помогите разобраться...
...
Рейтинг: 0 / 0
22.12.2009, 22:34
    #36381012
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
доступ к параметрам XSD
А никак. Доступ к <xsd:ahhotation> через SOM осуществляется только в режиме Write Only.

Единственный выход - рассматривать схему как обычный XML документ и натравит на него DOM или SAX парсер.

С уважением, Vasilisk
...
Рейтинг: 0 / 0
23.12.2009, 09:38
    #36381372
dit
dit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
доступ к параметрам XSD
Спасибо! Была такая мысль, но хотелось как-то проще.... Буду парпсить xml, если иных способов нет...
Еще раз спасибо, Vasilisk
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / доступ к параметрам XSD / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]