From: Eric van der Vlist (vdv@dyomedea.com)
Date: 10/10/2003 - 09:51
On Fri, 2003-10-10 at 11:42, Alexandre Arcouteil wrote:
> C'est donc a priori sans issue pour vous ; mais vous pouriez construire
> votre schéma "à l'envers", c'est à dire par restriction plutôt que par
> extension. Par exemple :
>
> <xs:complexType name="B">
> <xs:all>
> <xs:element name="name" />
> <xs:element name="description" minOccurs="0"/>
> <xs:element name="properties" />
> <xs:element name="strings" />
> </xs:all>
> </xs:complexType>
>
> <xs:complexType name="A">
> <xs:complexContent>
> <xs:restriction base="B">
> <xs:all>
> <xs:element name="properties" />
> <xs:element name="strings" />
> </xs:all>
> </xs:restriction>
> </xs:complexContent>
> </xs:complexType>
Oui, c'est exact, mais il faut noter que la dérivation par restriction
n'apporte strictement rien à un schéma en terme de modularité : la
dérivation reprend toutes les définitions du type de base. Si vous
modifiez le type de base (B) vous devez donc modifier également la
dérivation (A)!
La dérivation par restriction est donc uniquement une déclaration
permettant aux applications utilisant le PSVI (Post Schema Validation
Infoset) de savoir que A est dérivée de B et donc implicitement qu'une
classe sachant traiter B saura aussi traiter A.
En dehors de cette utilisation (encore marginale à ma connaissance),
cette dérivation n'apporte aucune modularité supplémentaire par rapport
à :
<xs:complexType name="B">
<xs:annotation>
<xs:documentation>Sur ensemble de A </xs:documentation>
</xs:annotation>
<xs:all>
<xs:element name="name" />
<xs:element name="description" minOccurs="0"/>
<xs:element name="properties" />
<xs:element name="strings" />
</xs:all>
</xs:complexType>
<xs:complexType name="A">
<xs:all>
<xs:element name="properties" />
<xs:element name="strings" />
</xs:all>
</xs:complexType>
La dérivation est même plutôt plus verbeuse et moins facile à lire...
Eric
--
Read me on XMLhack.
http://xmlhack.com/author.php?id=8
Upcoming schema tutorial:
- Philadelphia (7/12/2003) http://makeashorterlink.com/?V28612FC5
Tutoriel XSLT:
- Paris (25/11/2003) http://makeashorterlink.com/?L2C623FC5
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|