Ошибка генерации схемы XACML2 для.NET - невозможно использовать подстановочные знаки на верхнем уровне схемы
Кто-нибудь смог успешно сгенерировать классы сущностей C# из файлов схемы XACML2? Я получаю сообщение "Невозможно использовать подстановочные знаки на верхнем уровне схемы". Я думаю, что это как-то связано с хз: любые элементы. Я попытался изменить processContents="skip" (от "lax"), но безрезультатно. Я получаю это с помощью WSCF Blue, а также xsd.exe.
2 ответа
Прекрасно работает для меня, используя версию xsd.exe, которая поставляется с VS 2010.
У меня нет проблем при запуске схемы 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
Definition и XSD сгенерируют правильные типы классов для схемы. Сгенерированный AttributeValueType
Класс будет иметь свойства для списка элементов и списка атрибутов, который охватывает все базы.