【发布时间】:2014-08-19 11:23:59
【问题描述】:
我正在尝试使用 SAX、Stax 和 DOM 解析器解析 XMl 文件(根据我的任务)。我遇到的问题是所有解析器似乎都忽略了 XSD 架构中指定的属性的默认值。
<complexType name="Tariff" abstract="true">
<sequence>
<element name="id" type="ID" />
<element name="monthly-fee" type="float" />
</sequence>
<attribute name="status" type="trns:Status" use="optional" default="active"/>
</complexType>
<complexType name="LocalTariff">
<complexContent>
<extension base="trns:Tariff">
<sequence>
<element name="internal-charge" type="trns:CallCharge" />
<element name="external-charge" type="trns:CallCharge" />
</sequence>
</extension>
</complexContent>
</complexType>
这里是属性类型定义:
<simpleType name="Status">
<restriction base="string">
<enumeration value="active"></enumeration>
<enumeration value="supported"></enumeration>
<enumeration value="unavailable"></enumeration>
</restriction>
</simpleType>
我希望解析器自动插入带有默认值的缺失属性。
<local-tariff>
<id>id1</id>
<monthly-fee>20.5</monthly-fee>
<internal-charge>3.7</internal-charge>
<external-charge>2.5</external-charge>
</local-tariff>
我的猜测是我没有指定一些参数来让解析器考虑我的 XSD。
有人可以请教我这个问题吗?我是 XML 新手。任何帮助将不胜感激。
【问题讨论】: