Altova XMLSpy 2024 Enterprise Edition

Les modèles de contenu ouverts sont nouveaux dans XSD 1.1. Ils sont déclarés sur des types complexes et permettent à tout élément (c'est à dire, un élément non défini dans le modèle de contenu du type complexe) de se produire un nombre illimité de fois soit (i) entre les éléments définis dans le modèle de contenu, soit (ii) après les éléments définis dans le modèle de contenu.

 

L'élément openContent est un enfant du type complexe et se produit une fois avant le modèle de contenu du type complexe (voir capture d'écran ci-dessous).

 

Mode

L'élément openContent a un attribut mode obligatoire qui peut prendre les valeurs interleave, suffix, ou none (voir capture d'écran ci-dessous). La valeur par défaut est interleave.

OpenContentModel01

La signification de ces valeurs est la suivante :

 

Si mode="interleave" ou mode="suffix", alors le contenu de l'élément de caractère générique (xs:any) doit être présent sans un nombre minimum ou maximum d'occurrences. Cela implique que tout nombre d'éléments non défini (caractères génériques) est autorisé.

Si le mode est interleave, tout nombre d'éléments non définis peut se produire avant ou après les éléments définis individuels dans le modèle de contenu. Ils sont intercalés entre des éléments définis.

Si le mode est suffix, tout nombre d'éléments non définis peut se produire après le dernier élément défini du modèle de contenu.

Si le mode est none, aucun élément non défini (enfant xs:any) peut se produire ; le modèle de contenu n'est pas ouvert. La valeur none est utilisée pour contourner l'élément defaultOpenContent dont la portée est répartie sur tout le schéma.

 

Dans le Mode de Modèle de contenu, vous pouvez ajouter un contenu ouvert en tant qu'un enfant du type complexe (par le biais d'Ajouter enfant dans le menu contextuel). Spécifier le mode soit en double-cliquant la fenêtre openContent dans le diagramme (voir capture d'écran ci-dessus) et sélectionner une valeur (interleave, suffix, ou none), ou en sélectionnant une valeur dans l'Assistant à la saisie des Détails.

 

Propriétés de caractère générique (xs:any)

Les propriétés de caractère générique sont spécifiées dans l'Assistant à la saisie des Détails. Sélectionner le caractère générique dans le diagramme et saisir les valeurs de propriété dans l'Assistant à la saisie Détails.

 

Contenu ouvert par défaut

Cet élément defaultOpenContent est nouveau dans XSD 1.1 et spécifie que l'un ou plusieurs éléments non définis peut être ajouté à tout type complexe de contenu mixte ou element-only. Il est semblable à l'élément openContent (également nouveau dans XSD 1.1), la différence principale étant qu'alors que l'élément openContent s'applique à un seul type complexe, l'élément defaultOpenContent s'applique à tous les types complexes dans le schéma.

 

L'élément defaultOpenContent est un composant global et se produit une fois dans le document (voir capture d'écran ci-dessous), après Inclut, Importe, Redéfinit et Substitue, et avant les définitions des composants. Il a un attribut mode qui peut prendre une valeur de soit interleave ou suffix. Le défaut est interleave.

SchOviewDefOpenContent

L'élément defaultOpenContent a un contenu de modèle que vous pouvez éditer dans le Mode de Modèle de contenu, exactement de la même manière que dans la définition de l'élément openContent (voir ci-dessus). Une fois déclaré, l'élément defaultOpenContent s'appliquera automatiquement à tous les types complexes dans le schéma et sera affiché dans leurs modèles de contenu. Dans la capture d'écran ci-dessous, vous pouvez voir que l'élément defaultOpenContent a été appliqué automatiquement aux types complexes OfficeType et Desc.

ContModViewDefOpenContent

Afin de surmonter l'élément defaultOpenContent lorsqu'il est appliqué à un type complexe particulier, ajouter un élément enfant openContent à ce type complexe. Dans la capture d'écran ci-dessous, l'élément Desc avec l'élément defaultOpenContent (voir capture d'écran ci-dessus) s'est vu rajouter un élément openContent qui surmonte l'élément defaultOpenContent.

ContModViewDefOpenContent02

 

© 2017-2023 Altova GmbH