¿Qué hace elementFormDefault
y cuándo debe usarse?
Entonces encontré algunas definiciones de elementFormDefault
valores:
calificado : los elementos y atributos están en el targetNamespace del esquema
no calificado : los elementos y atributos no tienen un espacio de nombres
Entonces, a partir de esa definición, pensaría que si un esquema está configurado como calificado, ¿por qué debe prefijar el tipo con el espacio de nombres? ¿Y cuáles son los escenarios en los que incluso tendrías uno configurado como no calificado para el caso? Intenté buscar en Google, pero todo lo que obtuve fueron un par de páginas del W3C que eran extremadamente difíciles de entender.
Este es el archivo con el que estoy trabajando en este momento, ¿por qué necesito declarar el tipo como target:TypeAssignments
cuando declaro que targetNamespace
es el mismo que 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>