.NET的XACML2架构生成错误 - 无法在架构的顶级使用通配符

时间:2010-07-08 18:41:28

标签: code-generation xacml xacml2

是否有人能够从XACML2架构文件成功生成C#实体类?我得到“不能在架构的顶层使用通配符。”我认为这与xs有关:任何元素。我试过更改processContents =“skip”(来自“lax”)但无济于事。我使用WSCF Blue以及xsd.exe来获取此内容。

2 个答案:

答案 0 :(得分:1)

使用与VS 2010一起发布的xsd.exe版本,对我来说非常适合。

答案 1 :(得分:1)

我通过VS2010 XSD.exe运行Xacml3架构没有问题,但我确实在尝试使用XSD处理Xacml2架构时看到“无法在架构的顶级使用通配符”错误。

XSD处理Xacml2策略架构,没有错误。

XSD在处理Xacml2 Context模式时报告此通配符错误。

问题似乎是##any架构定义中mixed="true"xacml-context:AttributeValueType的组合。 Xacml2策略模式和Xacml3中AttributeValueType的其他定义使用xs:complexContent扩展名围绕ExpressionType扩展名,后者又包含xs:anyxs:anyAttribute个定义。 Xacml2 context:AttributeValueType不包含此包装器。

解决方案:从Xacml2 mixed="true"定义中删除xacml-context:AttributeValueType,XSD将为架构生成正确的类类型。生成的AttributeValueType类将具有元素列表和属性列表的属性,这些属性涵盖所有基础。