Was macht elementFormDefaultund wann sollte es verwendet werden?
Also habe ich einige Definitionen für elementFormDefaultWerte 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:TypeAssignmentsdeklarieren targetNamespacewie 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>