XML Schema Validierung des Zahlenbereichs

bronkowitz

Aktives Mitglied
Hallo,
ich versuche mich gerade in die XML-Schema Thematik einzuarbeiten. Folgendes Schema habe ich geschrieben:

[xml]<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">

<xs:element name="test">
<xs:complexType>
<xs:sequence>
<xs:element name="orientationAngle"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="orientationAngle">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="-180"/>
<xs:maxInclusive value="180"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

</xs:schema>[/xml]

und diese Datei validiere ich (mit NetBeans und Online-Validierern)

[xml]<?xml version="1.0" encoding="UTF-8"?>

<test
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation='test.xsd'>

<orientationAngle>
-181
</orientationAngle>

</test>[/xml]

Ich verstehe nicht, warum hier kein Fehler angezeigt wird. Oder wird der zulässige Zahlenbereich von den Validierern nicht geprüft?

mfG
bronkowitz
 
Hi,
Ich bin mir nicht sicher, ob die restriction auf ein Element angewendet werden kann...
EDIT.... es geht auch auf Elemente:

Du musst im Schema:
stattt
[XML]
<xs:element name="orientationAngle"/>
[/XML]
ändern in
[XML]
<xs:element ref="orientationAngle"/>
[/XML]

Nachfolgend ein Beispiel, dass restrictions in attributen hat:
Schema:
[XML]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="test">
<xs:complexType>
<xs:sequence>
<xs:element ref="object" minOccurs="0" maxOccurs="2"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="object">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="orientationAngle" use="required">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="-180"/>
<xs:maxInclusive value="180"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>
[/XML]
und das test.xml:
[XML]
<?xml version="1.0" encoding="UTF-8"?>
<test
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation='test.xsd'>
<object name="object 1" orientationAngle="-189"/>
<object name="object 2" orientationAngle="179"/>
</test>
[/XML]
Die Validierung motzt in diesem Fall weil object 1 nicht im Range ist.

Vielleicht hilft dir das weiter.
 
Zuletzt bearbeitet:

Zurück
Oben