2010-09-22 25 views
0

Les éléments Xpath du schéma XSD text() peuvent-ils être récupérés dans vb.net? Par exemple, comment pouvez-vous obtenir ce Xpath à partir du schéma suivant?vb.net - Obtention du Xpath des éléments du schéma XSD

parent

/enfant/petit-enfant

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" 
      elementFormDefault="qualified" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="parent"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="child"> 
        <xs:complexType> 
         <xs:sequence> 
          <xs:element name="grandchild" 
             type="xs:string" /> 
         </xs:sequence> 
        </xs:complexType> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

Votre question n'est pas claire. Souhaitez-vous générer dynamiquement les expressions XPath pour les nœuds de texte à partir d'un schéma défini? Je ne vois pas le besoin ... Vous pouvez sélectionner chaque nœud de texte d'un document avec '// text()'. –

+0

Quelle est votre sortie désirée - "parent/enfant/petit-enfant"? et quelle est votre contribution - le schéma, et quelque chose qui nous dit quel élément vous voulez aborder? Si c'est le cas, il pourrait y avoir beaucoup de XPaths pour y arriver. – LarsH

Répondre

0

Mon objectif essentiel est de déterminer (en code) XPath entre deux nœuds. Par exemple, si le parent avait un nœud child2, je pourrais obtenir le nœud child2 de petitchild comme ancêtre :: parent/child2

Ma pensée était que si j'ai le chemin complet vers les deux nœuds, je pourrais déterminer le chemin relatif (ancêtre, descendant) entre les nœuds. Je voudrais stocker le xpath complet de chaque nœud de texte dans la base de données (une meilleure approche serait appréciée).

Ma question était «puis-je générer les chemins complets à partir du schéma xsd?

Alejandro, j'ai pensé faire ça à partir d'un document d'instance en utilisant // text() et ça marche. LarsH, je crois qu'il n'y aurait qu'un seul chemin entre le nœud petit-enfant et le nœud child2.

Nous vous remercions de vos réponses.