XmlSchema Espaces effondrement: Ce qui se passe à plusieurs espaces?
J'utilise la suite XmlSchema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.test.com/XmlValidation"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:m="http://www.test.com/XmlValidation">
<xs:element name="test">
<xs:complexType>
<xs:sequence>
<xs:element name="testElement" type="m:requiredStringType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="requiredStringType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Il définit un requiredStringType qui doit être au moins un caractère de long et définit également les espaces de l'effondrement.
Quand j'ai valider le document Xml suivant la validation succeedes:
<?xml version="1.0" encoding="UTF-8"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.text.com/XmlValidation">
<testElement> </testElement>
</test>
w3.org définit pour les espaces effondrement:
"Après le traitement de l'implicite à remplacer, des séquences contiguës de #x20 sont réduites à une seule #x20, et d'attaque et de fuite #x20 sont supprimés."
Est-ce à dire que 3 espaces sont réduits à un ou à zéro des espaces? Dans XmlSpy la validation échoue, dans .Net, il réussit.
OriginalL'auteur crauscher | 2009-03-20
Vous devez vous connecter pour publier un commentaire.
Car il dit que l'attaque et de fuite des espaces sont supprimés, ce qui signifie qu'une chaîne qui ne contient que des espaces sont réduits à une chaîne vide. XmlSpy est d'être précis dans la validation et l' .NET est généreux (ou fait une erreur).
C'est selon L'Espace blanc de la Normalisation en cours de Validation de XML Schema Partie 1: les Structures de la Deuxième Édition.
Donc, d'abord tous les espaces sont remplacés par des caractères blancs, deuxième des séquences contiguës sont remplacés par un seul caractère vide, le troisième et dernier, initiale et finale, les espaces sont supprimés. Suite à cette séquence, une chaîne de caractères ne contenant que des espaces doit être normalisé à une chaîne vide en cours de validation.
OriginalL'auteur Eddie
Cela semble fonctionner .Montant Net (note le motif de facettes), le schéma n'est pas nécessaire dans Saxonne.
OriginalL'auteur user4371159