Ошибка генерации схемы 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 Класс будет иметь свойства для списка элементов и списка атрибутов, который охватывает все базы.

Другие вопросы по тегам