2009-08-22 6 views
2

Existe-t-il un moyen de créer un XSD qui autorise un attribut provenant d'un espace de noms différent, mais uniquement s'il est qualifié? Un exemple d'un fichier XML qui serait valide selon le schéma estEcriture d'un schéma XML qui autorise des attributs qualifiés à partir d'autres espaces de noms

<d:document dx:size="a5" 
    xmlns:d="http://example.com/documents" 
    xmlns:dx="http://example.com/document-extensions"/> 

Le schéma doit appliquer l'attribut size être qualifié et qui est la partie que je ne peux pas se rendre au travail.

+0

WAG - Vous avez essayé de déplacer dx: size à après avoir défini son espace de noms? – Will

Répondre

0

Dans votre balise de schéma d'ouverture de votre schéma, pas votre document d'instance, utilisez l'attribut attirbuteFormDefault = "qualifié" pour vous assurer que tous les attributs sont qualifiés pour un espace de noms. Dans votre schéma, vous devrez importer, ne pas inclure, où l'attribut en question est défini, puis affecter un préfixe d'espace de noms à l'emplacement du document que vous importez.

Maintenant, vous aurez défini un préfixe d'espace de noms à une autre définition connue de votre schéma. Vous pouvez maintenant utiliser des éléments de cette autre définition dans votre document d'instance préfixé par le préfixe d'espace de noms que vous avez défini dans votre schéma. Cela fonctionne mieux si l'autre document de définition est également un schéma.

+0

Merci, j'ai réussi à le résoudre en important le schéma des extensions de document à partir du schéma de document, puis en référençant un groupe d'attributs. Je n'ai pas utilisé l'attributFormDefault = "qualifié", car je voulais pouvoir mélanger des attributs non qualifiés avec des attributs qualifiés. –

+0

Avez-vous vraiment dû importer le fichier .XSD? Je n'en ai pas. mais j'ai toujours besoin de l'attribut préfixé en XML. Pouvez-vous partager votre code d'importation? http://stackoverflow.com/questions/12105840/xsd-syntax-for-xml-attributes-with-namespace – SoulMan

Questions connexes