2010-06-10 2 views
0

Обратите внимание, что я прошу проверки на конкретный узел, а не весь файл. ПримерыКак проверить XML-узел на XSD на C++?

<somexmldoc> 
    <someNode> 
     <UserDefinedNode> </> 
     <UserDefinedNode> </> 
    </someNode> 
</somexmldoc> 

Для этого XML-документ, у меня есть wholeDoc.XSD, которые можно было бы использовать для проверки всего документа, за исключением «UserDefinedNode» (Этот узел указан с «любой» тега в XSD, которое позволяет чтобы определить что-либо под этим узлом).

Возможно ли иметь отдельный файл userdefined.XSD для проверки «UserDefinedNode»? Можно ли использовать MSXML для C++ (IXMLDomDocument) для проверки этого?

Спасибо!

ответ

0

Должно быть возможно. Я нашел документ под названием КАК: проверить XML-фрагменты XML-схемы на Visual C# .NET для вас (see here). Это C#, но вы должны уметь это перевести :-)

1

XSD применяется ко всему документу DOM, но не фрагменту DOM. Однако, поскольку ваш фрагмент также является действительным XML, почему бы не скопировать его на другой объект DOM в качестве корня? Вы можете использовать appendChild или cloneNode для достижения этой цели, а затем проверить новый DOM.

Кстати, если вы хотите проверить указанный фрагмент DOM, вам понадобится метод validateNode.

Смежные вопросы