나는 다음에 XmlSchema 사용 : 그것은 적어도 하나 개의 문자 길이이어야합니다 requiredStringType을 정의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>
을 또한 공백 붕괴를 정의합니다.
나는 다음과 같은 XML 문서를 검증 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이 공백 붕괴에 대한 정의에 의해 암시 처리가 교체 한 후
이", # X20 년대의 연속 시퀀스로 붕괴됩니다 하나의 # x20 및 앞뒤의 # x20이 제거됩니다. "
이렇게하면 3 개의 공백이 하나의 공백으로 축소되거나 0 개의 공백으로 축소됩니까? XmlSpy에서 유효성 검사가 실패합니다. .NET에서는 성공합니다.
리팩토링 화이트 스페이스 (붕괴 후 하나)가 공백 문자로 처리되는지 확실하지 않습니다. 아마 .Net의 bahavior는 정확합니다. 나에게 틀린 증거가 될 수있는 w3.org 사이트에서 XmlValidator를 찾지 못했습니다. – crauscher