Элементы схемы XML поддерживают подмножество: правда или фальшивка? - PullRequest
1 голос
/ 09 июня 2011

В эти дни мне приходилось разрабатывать приложения, связанные с определениями XML-схем.Я работаю с определенными системами и технологиями, большинство из которых относятся к ресурсам Microsoft, и я могу узнать, что не все сущности xml поддерживаются синтаксическими анализаторами xml и другими инструментами, доступными в мире разработки.

Например,Я знаю, что DataContractSerializer не может обрабатывать атрибуты xml.

Что ж, просматривая веб-страницы, я понял, что это не только атрибуты, но сегодня доступные инструменты не поддерживают все объекты внутри xml, вФактически, такие инструменты, как Xsd.exe от Microsoft или DataContractSerializer, всегда генерируют XML-схемы, используя, дословно:

Подмножество наиболее поддерживаемых элементов в стандартной спецификации xml-схемы

1) Ну, мой вопрос: верна ли эта информация?2) Правда ли, что многие элементы в xsd не поддерживаются существующими инструментами разработки?3) Если это правда, каково наименьшее подмножество элементов xsd, поддерживаемых всеми доступными на сегодня инструментами?

Спасибо

1 Ответ

2 голосов
/ 09 июня 2011

Я знаю о некоторых инструментах, которые поддерживают только крошечное подмножество XSD, но лекарство от них - избегать (как это делают большинство других людей). Так что нет реального ответа на ваш вопрос. Большинство основных валидаторов XSD (в отличие от инструментов привязки данных) поддерживают все в спецификации, кроме крайних случаев: но они отличаются в зависимости от того, что они считают крайними случаями. Альтова, например, не применяет ограничение «Уникальная атрибуция частиц»; Microsoft (я полагаю) поддерживает свой собственный диалект регулярных выражений, а не тот, который определен в спецификации W3C.

Инструменты привязки данных немного отличаются, потому что они сталкиваются с проблемой сопоставления конструкций XSD с вещами в какой-либо другой системе типов, и в зависимости от того, что представляет собой эта другая система типов, некоторые конструкции не отображаются легко. Мне сказали, что многие инструменты связывания данных имеют проблемы со смешанным контентом.

Я понятия не имею, что такое DataContractSerializer, но если он действительно не обрабатывает атрибуты XML, то это выглядит как нечто, чего следует избегать.

...