Как я могу использовать другую/больше современную проверку схемы с .NET?

Я пытаюсь сделать некоторую работу с C#, и XML в межплатформенном приложении (большая часть разработки находится в MonoDevelop на Linux, но большинство пользователей закончит тем, что использовало фронтенд WinForms, который я делаю в Visual Studio). Моно ведет себя, как я ожидал бы, но .NET не и таким образом, я ищу опции и альтернативы.

Схемам следовал за различными дополнительными элементами "xs:any" элемент. Это работает превосходное в Моно, но не в .NET Microsoft, поскольку он жалуется, что возникновение дополнительного элемента неоднозначно между его фактическим определением в схеме и "xs:any". От небольшого количества чтения, это, кажется, проблема, которая была разрешена в более поздних версиях определения Схемы W3C. Очевидно Моно был усовершенствован, но Microsoft отстает.

Опции, которые я вижу:

1) Используйте RelaxNG - к сожалению, связь от основного сайта до реализации C# разорвана. Это - часть Моно, но это не много справки при работе .NET MS. Единственный путь I видит, чтобы сделать это, должен копировать и восстановить версию Mono как мой собственный DLL

2) Используйте Schematron - я нашел его как предложение при создании обратного и прямо совместимого XML, но это больше походит на блок проверки допустимости формата, чем 'стандартный' язык схемы. Я не совсем уверен, где реализация - все, что я могу найти, блок проверки допустимости командной строки.

3) Удостоверьтесь, что реализация .NET MS использует обновленный стандарт схемы, который Моно использование также - я даже не знаю, возможно ли это.

4) Палка с ужасными схемами и помещенным "xs:any" в дополнительном элементе "расширений" - это вкладывает, это ни на каком серьезном основании кроме официальной платформы .NET не запутывается, но это работает.

Код нацелен на.Net 2.0, но у меня есть 3,5 установленных на моей машине. Я также работаю с Моно 2.4, MonoDevelop 2.2 и Visual Studio Express 2005.

Действительно ли какой-либо из 1-3 возможен, или застревает я с 4?

Спасибо.

7
задан IBBoard 28 February 2010 в 20:50
поделиться

1 ответ

Вы можете обойти проблему неоднозначности, установив для XmlSchemaSet.CompilationSettings.EnableUpaCheck значение false. UPA означает требование уникальной атрибуции частиц стандарта XML-схемы, на которое вы ссылались.

4
ответ дан 7 December 2019 в 14:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: