VB.Net Проверка XML против схемы (странная проблема) - PullRequest
0 голосов
/ 21 апреля 2010

Я написал небольшой валидатор XML, который принимает файл XML и схему XML и проверяет файлы XML на соответствие этой схеме. Он работает хорошо, за исключением файла XML, с таким содержанием:

 <?xml version="1.0" encoding="utf-8"?>
<xc:program xmlns:xc="http:\\www.something.com\Schema\XC10" xc:version="4.0.22.0" >
    <xc:namespaceDecls>
        <xc:namespaceDecl xc:namespaceDeclURI="urn:swift:xsd:abc">
            <xc:namespaceDeclPrefix>n</xc:namespaceDeclPrefix>
        </xc:namespaceDecl>
    </xc:namespaceDecls>
</xc:program>

Я пытался проверить этот XML-файл по куче разных схем. Неважно, какую схему я выберу, этот XML-файл считается действительным. Чего мне не хватает? Вот соответствующий фрагмент кода:

//'Create a schema cache and add the given schema to it.
Dim schemaCache As New Schema.XmlSchemaSet

schemaCache.Add(targetNamespace, schemaFilename)

//'Create an XML DOMDocument object.
Dim xmlDom As New XmlDocument

//'Assign the schema cache to the DOM document.
//'schemas collection.
xmlDom.Schemas = schemaCache

//'Load selected file as the DOM document.
xmlDom.Load(xmlFilename)
xmlDom.Validate(AddressOf ValidationCallBack)

1 Ответ

0 голосов
/ 22 апреля 2010

Возможно, у вас эта проблема с корневыми пространствами имен, которые не распознаются.В этом случае вам нужно проверить статус проверки корневого элемента .

...