为何Eclipse XML Schema编辑器将element的form属性标记为错误?
Eclipse XML Schema编辑器标记form属性错误的原因
我来给你拆解下这个问题——你用Eclipse Editor and Tools 3.9.2测试XSD命名空间,结果编辑器把<element name="root" form="unqualified">里的form属性标红报错,核心原因是你违反了XML Schema的语法规则:
关键规则:form属性不能用在全局元素上
XML Schema规范明确规定,form属性只能用来覆盖elementFormDefault的默认设置,而且仅对本地元素生效——也就是那些嵌套在<complexType>、<group>、<choice>等内部的元素声明。而像<root>这种直接作为<schema>根节点子元素的全局元素,是不允许使用form属性的。
结合你的代码分析
你的schema已经设置了elementFormDefault="qualified",这个配置是用来控制本地元素的命名空间默认行为的。但<root>是全局元素,它的命名空间归属和elementFormDefault无关,自然也不需要(也不能)用form属性来修改。另外看你的代码里没有指定targetNamespace,所以<root>元素本身就属于无命名空间的范畴,完全不需要加form="unqualified"来画蛇添足。
解决方法
直接把<element name="root" form="unqualified">里的form="unqualified"删掉就可以了,编辑器的错误标记会消失。
内容的提问来源于stack exchange,提问作者ngong
相关产品推荐
相关产品推荐

