У меня нет проблем при запуске схемы Xacml3 через VS2010 XSD.exe, но я вижу эту ошибку «Не удается использовать подстановочные знаки на верхнем уровне схемы» при попытке обработать схему Xacml2 с помощью XSD.
XSD обрабатывает схему политики Xacml2 без ошибок.
XSD сообщает об этой подстановочной ошибке при обработке схемы контекста Xacml2.
Проблема заключается в комбинации ##any
и mixed="true"
в определении схемы xacml-context:AttributeValueType
. Другие определения AttributeValueType
в схеме политики Xacml2 и Xacml3 используют оболочку xs:complexContent
вокруг расширения ExpressionType
, которое, в свою очередь, содержит определения xs:any
и xs:anyAttribute
. Xacml2 context:AttributeValueType
не содержит эту оболочку.
Решение: Удалите mixed="true"
из определения Xacml2 xacml-context:AttributeValueType
, и XSD сгенерирует правильные типы классов для схемы. Сгенерированный класс AttributeValueType
будет иметь свойства для списка элементов и списка атрибутов, который охватывает все базы.