最佳答案
elementFormDefault
是做什么的,什么时候应该使用它?
因此,我找到了 elementFormDefault
值的一些定义:
限定的 -元素和属性 属性的 targetNamespace 中 模式
不合格的 -元素和 属性没有命名空间
因此,根据这个定义,我认为如果模式被设置为限定的,那么为什么必须用名称空间作为类型的前缀?有什么情况下,你甚至会有一个设置为不合格的问题?我试过谷歌,但我得到的只是几个 W3C 页面,非常难以理解。
这是我现在正在处理的文件,为什么我需要声明类型为 target:TypeAssignments
时,我声明的 targetNamespace
与 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>