Справочная информация:
Мы создаем приложение, которое позволяет нашим клиентам предоставлять данные в заранее заданном (т.е. мы не контролируем ) Формат XML. XSD предоставляется нам третьей стороной, и мы ожидаем получить XML-файл, который проходит проверку схемы перед его обработкой.
Проблема:
XSD, который нам предоставляется, включает в себя пространство имен по умолчанию и целевое пространство имен, что означает, что если клиент предоставит XML-файл, который не включает пространство имен, проверка будет пройдена. Мы, очевидно, не хотим, чтобы они предоставляли вещи, в которых говорится, что они проходят, но не должны, но большая проблема связана с массой дополнительных проверок, которые нам нужно будет выполнить для каждого элемента, если я не могу найти решение сделать проверка XML.
Вопросы:
Можно ли заставить .NET выполнять проверку и игнорировать пространство имен в предоставленных XML и XSD. т.е. каким-то образом «предположить», что пространство имен было прикреплено.
Решения, которые у меня есть на данный момент:
Пример XML:
<?xml version="1.0"?>
<xsd:schema version='3.09' elementFormDefault='qualified' attributeFormDefault='unqualified' id='blah' targetNamespace='urn:schemas-blah.com:blahExample' xmlns='urn:blah:blahExample' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
...
</xsd:schema>
с другим пространством имен
<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns="urn:myCompany.com:blahExample1" attr1="2001-03-03" attr2="google" >
...
</root>
без пространства имен вообще.
<?xml version="1.0" encoding="UTF-8" ?>
<root attr1="2001-03-03" attr2="google" >
...
</root>