O que elementFormDefault
faz e quando deve ser usado?
Então, encontrei algumas definições para elementFormDefault
valores:
qualificado - elementos e atributos estão no targetNamespace do esquema
não qualificado - elementos e atributos não têm um namespace
Portanto, a partir dessa definição, eu pensaria que, se um esquema é definido como qualificado, por que você deve prefixar o tipo com o namespace? E quais são os cenários que você teria definido como não qualificado para esse assunto? Eu tentei pesquisar no Google, mas tudo que consegui foram algumas páginas do W3C que eram extremamente difíceis de entender.
Este é o arquivo com o qual estou trabalhando agora, por que preciso declarar o tipo de target:TypeAssignments
quando declaro targetNamespace
o mesmo 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>