2010-07-08 8 views
1

Est-ce que quelqu'un a réussi à générer des classes d'entités C# à partir de fichiers de schéma XACML2? Je reçois "Impossible d'utiliser des caractères génériques au niveau supérieur d'un schéma." Je pense que cela a quelque chose à voir avec xs: tous les éléments. J'ai essayé de changer le processContents = "skip" (de "lax") mais en vain. Je reçois cela en utilisant WSCF Blue ainsi que xsd.exe.XACML2 Erreur de génération de schéma pour .NET - Impossible d'utiliser des caractères génériques au niveau supérieur d'un schéma

Répondre

1

fonctionne parfaitement pour moi en utilisant la version de xsd.exe que les navires w/VS 2010.

1

Je n'ai pas de problèmes en cours d'exécution du schéma Xacml3 par VS2010 XSD.exe, mais je ne vois ce « ne peut pas utiliser des caractères génériques à le niveau le plus élevé d'un schéma "en essayant de traiter le schéma Xacml2 avec XSD.

XSD traite le schéma de stratégie Xacml2 sans erreur.

XSD signale cette erreur générique lors du traitement du schéma Xacml2 Context. Le problème semble être la combinaison de ##any et mixed="true" dans la définition de schéma xacml-context:AttributeValueType. D'autres définitions de AttributeValueType dans le schéma de stratégie Xacml2 et Xacml3 utilisent un wrapper xs:complexContent autour d'une extension ExpressionType, qui à son tour contient les définitions xs:any et xs:anyAttribute. Le Xacml2 context:AttributeValueType ne contient pas ce wrapper.

Solution: Retirer mixed="true" de la définition Xacml2 xacml-context:AttributeValueType et XSD va générer les types de classes correctes pour le schéma. La classe AttributeValueType générée aura des propriétés pour une liste d'éléments et une liste d'attributs, qui couvre toutes les bases.