Question

J'ai un XML avec le format suivant.

<RootNode>
    <Parent>
        <Child1>Some text about child 1</Child1>
        <Child2>Some text about child 2</Child2>
        ....
        ....
        <Child5>Some text about child 5</Child5>
        ....
        ....
        <Childn>Some text about child n</Childn>
    </Parent>
</RootNode>

Maintenant, je veux valider cette xml contre xsd.

Mais le problème est le nom du numéro et le noeud des enfants ne sont pas fixés.

S'il vous plaît vérifier ci-dessous des échantillons de mon fichier

Exemple 1: Deux enfants avec le nom de noeud Enfant1 et Enfant2

<RootNode>
    <Parent>
        <Child1>Some text about child 1</Child1>
        <Child2>Some text about child 2</Child2>
    </Parent>
</RootNode>

Exemple 2: Trois enfants avec le nom de noeud enfant4 enfant5 et enfant8

<RootNode>
    <Parent>
        <Child4>Some text about child 4</Child4>
        <Child5>Some text about child 5</Child4>
        <Child8>Some text about child 8</Child8>
    </Parent>
</RootNode>

Je veux un pour valider le texte à l'intérieur du nœud enfant (qui est présenté comme « une partie du texte sur les enfants n ») avec la règle suivante

Règle: Le xml est invalide si un nœud enfant - (Enfants de Parent) a une longueur de texte iner plus de 256

.

Cela signifie considérer l'invalide xml si un enfant du nœud « parent » a le texte intérieur plus alors 256 caractères

Est-ce possible en utilisant la validation du schéma XSD? Pourriez-vous me aider la création du fichier .XSD pour valider ce?

Merci à l'avance

Était-ce utile?

La solution

Vous ne pouvez pas résoudre ce XSD comme dit avant simplement parce que vous ne savez pas ce que tous les noms d'éléments seront à l'avance. Si vous n'êtes pas totalement lié à la validation XSD vous pouvez jeter un oeil à Schematron qui peut faire exactement ce genre de validation.

Autres conseils

Il est impossible de valider cette opération automatiquement parce que le nombre maximum de nœuds enfants est inconnu. Vous pouvez être en mesure d'obtenir par écrit une validation manuelle.

Si vous êtes en mesure de changer le format de ce XML, vous devriez, car il est mal conçu (pas moins de tout cela parce que ce n'est pas validable ...). Vous devez tirer quelque chose de plus comme:

<RootNode>
    <Parent>
        <Child num="1">...</Child>
        <Child num="2">...</Child>
    </Parent>
</RootNode>

ou, si le parent peut contenir d'autres choses aussi bien que les enfants, puis d'avoir un récipient pour les enfants est utile:

<RootNode>
    <Parent>
        <OtherStuff/>
        <Children>
            <Child num="1">...</Child>
            <Child num="2">...</Child>
        </Children>
        <MoreStuff/>
    </Parent>
</RootNode>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top