Was macht elementFormDefault
und wann sollte es verwendet werden?
Also habe ich einige Definitionen für elementFormDefault
Werte gefunden:
qualifiziert - Elemente und Attribute befinden sich im targetNamespace des Schemas
unqualifiziert - Elemente und Attribute haben keinen Namespace
Aus dieser Definition würde ich denken, wenn ein Schema auf qualifiziert gesetzt ist, warum müssen Sie dem Typ dann den Namespace voranstellen? Und was sind die Szenarien, in denen Sie überhaupt eine Einstellung für unqualifiziert hätten? Ich habe versucht zu googeln, aber alles, was ich bekam, waren ein paar W3C-Seiten, die extrem schwer zu verstehen waren.
Dies ist die Datei, mit der ich gerade arbeite. Warum muss ich den Typ als den gleichen target:TypeAssignments
deklarieren targetNamespace
wie xmlns:target
?
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:target="http://www.levijackson.net/web340/ns"
targetNamespace="http://www.levijackson.net/web340/ns"
elementFormDefault="qualified">
<element name="assignments">
<complexType>
<sequence>
<element name="assignments" type="target:TypeAssignments"
minOccurs="1" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<complexType name="TypeAssignments">
<sequence>
<element name="assignment" type="target:assignmentInfo"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="assignmentInfo">
<sequence>
<element name="name" type="string"/>
<element name="page" type="target:TypePage"/>
<element name="file" type="target:TypeFile"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="id" type="string" use="required"/>
</complexType>
<simpleType name="TypePage">
<restriction base="integer">
<minInclusive value="50" />
<maxInclusive value="498" />
</restriction>
</simpleType>
<simpleType name="TypeFile">
<restriction base="string">
<enumeration value=".xml" />
<enumeration value=".dtd" />
<enumeration value=".xsd" />
</restriction>
</simpleType>
</schema>