Показать сообщение отдельно
Старый 23.01.2008, 18:13   #5  
leva is offline
leva
Участник
 
52 / 36 (2) +++
Регистрация: 03.08.2005
Озадачился тойже проблемой, но для AX4.

По поводу проблемы AxDude - там все просто. Все дело в том, что XMLDocument по-умолчанию использует MS XML 3 (см. XMLDocument::XMLDOM()), а в примере попытка использовать XMLSchemaCache.4, что собственно и вызывает ошибку из-за несовместимости. Исправить ситуацию можно, создавая объект XMLDocument так:

X++:
XMLDocument xmlDoc = xmlNode::construct(new COM('Msxml2.DOMDocument.4.0'));
Да и еще... там по логике вместо loadXML должно быть load

Желание использовать MS XML 4 понятно - начиная с него появляется поддержка XSD. А начиная с 6 исчезает поддержка XDR (ибо умерло).


Я начал делать тоже в AX4, но оказалось там все классы связанные с XML скрыты и многие методы убраны, в том числе com(). MS XML там используется предположительно >=4. Как произвести валидацию так и не понял, хотя там и появился и вроде работает класс XMLSchema, но как их "связать" не нашел.

Насколько я понял в 4-ке вся работа с XML вынесена в AIF и соотетственно классы Ax* и напрямую с XML-классами работать не рекомендуется.

В Ax-классах пока тоже не нашел валидацию, направьте на верный путь.