2009-09-03 9 views
3

Je travaille sur un schéma XML qui va être utilisé pour le transfert de données entre un certain nombre d'applications, pas toutes sous notre contrôle. Les données de base vont être les mêmes pour tous, mais nous voulons permettre à des applications spécifiques de stocker des données supplémentaires pour permettre le "tri" des fichiers afin qu'ils puissent sauvegarder et recharger et ne rien perdre de ce qui est spécifique à cette application. Quelle est la meilleure pratique pour cela? Les pensées que nous avons jusqu'à maintenant sont de définir un nœud pour chaque nœud principal, ce qui nous permettra de valider par rapport à un schéma (pas de nœuds inattendus, ou de nœuds au mauvais endroit), ce qui permet de stocker quelque chose sous Nœud d'extensionQuelle est la meilleure pratique pour définir des extensions dans un standard XML?

Il est probable que nous souhaitons également définir un ou plusieurs de ces schémas étendus comme des schémas à part entière.

Comment cela se fait-il dans d'autres normes s'il vous plaît? Que devrions-nous adopter?

Répondre

1

Si le schéma d'origine n'a pas été écrit pour l'extensibilité, alors vous n'avez pas de chance.

En tant qu'exemple d'un schéma écrit pour l'extensibilité, voir le schéma pour WSDL. Notez que presque tout étend le type wsdl:documented. Notez que de nombreux éléments permettent également l'extensibilité:

<complexType name="serviceType"> 
    <complexContent> 
     <extension base="wsdl:documented"> 
      <sequence> 
       <element ref="wsdl:port" minOccurs="0" maxOccurs="unbounded"/> 
       <any namespace="##other" minOccurs="0"/> 
      </sequence> 
      <attribute name="name" type="NCName" use="required"/> 
     </extension> 
    </complexContent> 
</complexType> 

L'élément any permettra XML arbitraire à inclure.


BTW, tout ce que je sais à propos de schéma XML, j'ai appris de XML Schema par Eric van der Vlist.

Editeur: O'Reilly Media, Inc.
Date de publication: 25 Juin, 2002
Imprimer ISBN-13: 978-0-596-00252-7
Pages: 400

Voir le chapitre 13, Creating Extensible Schemas.

+0

Nous concevons le schéma nous-mêmes, nous pouvons donc le faire faire tout ce que nous voulons en ce moment. – mj2008

+0

Désolé, j'ai manqué où vous avez dit "aller à". Si vous suivez l'exemple du schéma WSDL, vous serez loin. –

+0

Voir ma modification pour une recommandation de livre. –

Questions connexes