J'essaie d'obtenir directement les éléments uniques et clés pour XML Schema, en particulier en ce qui concerne le sélecteur et les éléments de champ à l'intérieur. Je ne suis pas clair sur les sélecteurs et les champs, et je dois obtenir ce droit. Supposons que j'ai un fichier XML avec des sociétés répertoriées dans des groupes fonctionnels. J'ai un élément dans chaque groupe avec un champ unique (pour référence chaque groupe particulier).Localement Unique?
Je souhaite créer un champ unique à l'intérieur de chaque liste de sociétés au sein de chaque groupe qui serait unique uniquement dans ce groupe particulier.
Serait-ce correct ?:
<xs:unique id="company_group_refs" name="company_group_refs">
<xs:selector xpath="root/all_companies/company_group"/>
<xs:field xpath="company_group_ref"/>
</xs:unique>
<xs:unique id="company_refs" name="company_refs">
<xs:selector xpath="root/all_companies/company_group"/>
<xs:field xpath="company/company_ref"/>
</xs:unique>
Si oui, pourrais-je condenser ci-dessus à cette ?:
<xs:unique id="company_refs" name="company_refs">
<xs:selector xpath="root/all_companies/company_group"/>
<xs:field xpath="company_group_ref"/>
<xs:field xpath="company/company_ref"/>
</xs:unique>
Pour référencer un nom d'entreprise en particulier, je veux être en mesure de donnent une expression XPath comme ceci:
racine/all_companies/company_group [company_group_ref = x1]/entreprise [company_ref = x2]/nom
Où: x1 = référence unique pour le groupe d'entreprises.
et: x2 = la référence unique de l'entreprise au sein de ce groupe.
Ce qui suit est un extrait de fichier XML qui illustre ce scénario:
<all_companies>
<company_group>
<company_group_name>Cleaning</company_group_name>
<company_group_ref>1</company_group_ref>
<company>
<name>Ajax</name>
<company_ref>1</company_ref>
</company>
<company>
<name>Bloomburg</name>
<company_ref>2</company_ref>
</company>
<company>
<name>Morris</name>
<company_ref>3</company_ref>
</company>
</company_group>
<company_group>
<company_group_name>Electrical</company_group_name>
<company_group_ref>2</company_group_ref>
<company>
<name>Armstrong</name>
<company_ref>1</company_ref>
</company>
<company>
<name>Bloomburg</name>
<company_ref>2</company_ref>
</company>
<company>
<name>Zap Electrical</name>
<company_ref>3</company_ref>
</company>
<company>
<name>Morris</name>
<company_ref>4</company_ref>
</company>
</company_group>
</all_companies>
MERCI !!!
Salut Martin, merci pour la réponse et la réponse. – user304607