我有以下XML文件:
<el id="el1">content</el>
我的文件中定义上述元素的部分如下:
<xsd:element name="el" type="myns:el" />
<xsd:simpleType name="state">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="enabled" />
<xsd:enumeration value="disabled" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="el">
<xsd:attribute name="id" type="xsd:string" use="required" />
<xsd:attribute name="state" type="myns:state"
default="enabled" />
</xsd:complexType>
我的Java代码应该获得state
的默认值,如下所示:
Element e = (Element) ns.getElementsByTagName("el").item(0);
System.out.println(e.getAttribute("state"));
如果我没有在XML文件中设置state
属性,则上面的代码始终会打印一个空字符串。为什么会这样?根据{{3}},getAttribute
返回
作为字符串的Attr值,或者该属性的空字符串 没有指定或默认值。
我的问题是:为什么在未指定值时,getAttribute
是否会返回默认值?