2013-06-14 1 views
0

Dans le schéma xml là, je l'ai suivante pour un élémentutilisation Collapse dans le schéma xml

<xs:whiteSpace value="collapse" /> 

Ce que j'ai vu dans w3schools.com est que

« La contrainte whiteSpace est réglé sur « l'effondrement », qui signifie que le processeur XML supprimera tous les caractères blancs (sauts de ligne, tabulations, espaces, les retours chariot sont remplacés par des espaces, les espaces avant et arrière sont supprimés et plusieurs espaces sont réduits à un seul espace) "

J'ai trouvé que lors de la validation xml contre le sc hema (en utilisant le studio de stylet et le studio visuel) si cet élément a plus d'un espace ou flux de nouvelle ligne etc. alors la validation ne donne pas d'erreur. Alors qu'est-ce que l'effondrement signifie? Est-il dit à l'élément ne devrait pas avoir plus d'un espace, onglet, etc (mais dans la validation aucune erreur est venu) ou c'est autre chose?

Mise à jour: Est-ce que cet effondrement est utilisé dans la validation de xml seulement?

xml parser supprime obligatoirement ces espaces lors du traitement?

Y a-t-il d'autres problèmes si le xml a des espaces blancs plus d'un et un collapse spécifié pour cet élément?

Répondre

1

Vous pouvez spécifier que les espaces doivent être normalisés ou réduits pour une chaîne avant qu'une autre validation ne soit effectuée. Par exemple, vous pouvez spécifier la facette <xs:pattern value="\d{3}"/> et la valeur " 999 " sera valide si les espaces sont configurés pour se réduire, car les espaces seront supprimés avant que la valeur ne soit testée par rapport au motif.

+0

J'avais encore quelques doutes. donc j'ai mis à jour ma question. Alors s'il vous plaît jetez un oeil à cela. –

+0

La suppression des espaces affecte également la valeur contenue dans le PSVI. Si cela vous affecte dépend de la façon dont vous traitez les données; par exemple, je n'ai aucune idée si JAXB présente la valeur réduite ou l'original. Je peux vous donner une réponse pour XPath/XSLT/XQuery (mais ce n'est pas un simple et est dans une certaine mesure implémenté-défini ...) –

+0

Merci pour la réponse –