【发布时间】:2010-08-30 18:29:41
【问题描述】:
我在解析 XML 文件时遇到问题。使用的 XML 模式是:
<xsd:complexType name="QuoteFIBondPrice">
<xsd:complexContent>
<xsd:sequence>
<xsd:element name="BidPrice" type="QuoteFIBondValue" minOccurs="0"/>
<xsd:element name="MidPrice" type="QuoteFIBondValue" minOccurs="0"/>
<xsd:element name="OfferPrice" type="QuoteFIBondValue" minOccurs="0"/>
<xsd:element name="MaturityDate" type="DbGMLType:SystemName" minOccurs="0"/>
<xsd:element name="Coupon" type="DbGMLType:SystemName" minOccurs="0"/>
<xsd:element name="DisplayName" type="DbGMLType:SystemName" minOccurs="0"/>
</xsd:sequence>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="QuoteFIBondValue">
<xsd:all>
<xsd:element name="QuoteValue" type="DbGMLType:QuoteValue" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
我得到的错误信息是这样的:
com.db.dbadapter.util.xml.XMLValidatorParserException 类:遇到 SAXParseException(s): [s4s-elt-invalid-content.1: 'QuoteFIBondPrice' 的内容无效。元素“序列”无效、放错位置或过于频繁地出现。 (第 53 行,第 18 列)]
你能帮帮我吗?
我已经更改了 XML 架构,现在是这样的:
<xsd:complexType name="QuoteFIBondPrice">
<xsd:sequence>
<xsd:element name="BidPrice" type="QuoteFIBondValue" minOccurs="0"/>
<xsd:element name="MidPrice" type="QuoteFIBondValue" minOccurs="0"/>
<xsd:element name="OfferPrice" type="QuoteFIBondValue" minOccurs="0"/>
<xsd:element name="MaturityDate" type="DbGMLType:SystemName" minOccurs="0"/>
<xsd:element name="Coupon" type="DbGMLType:SystemName" minOccurs="0"/>
<xsd:element name="DisplayName" type="DbGMLType:SystemName" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="QuoteFIBondValue">
<xsd:all>
<xsd:element name="QuoteValue" type="DbGMLType:QuoteValue" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
经过测试,发现之前的错误变成了:
**[cvc-complex-type.2.4.a:发现以元素“BidPrice”开头的无效内容。应为“{MaturityDate, Coupon, DisplayName}”之一。 (第 35 行,第 17 列)]
[cvc-complex-type.2.3:元素'BidPrice'不能有字符[children],因为该类型的内容类型是仅元素。 (第 35 行,第 35 列)]
[cvc-complex-type.2.3:元素'MidPrice'不能有字符[children],因为该类型的内容类型是仅元素。 (行:36,列:38)]class com.db.dbadapter.util.xml.XMLValidatorParserException:遇到 SAXParseException(s):
[cvc-complex-type.2.3:元素'OfferPrice'不能有字符[children],因为该类型的内容类型是仅元素。 (第 34 行,第 39 列)]
[cvc-complex-type.2.4.a:发现以元素“BidPrice”开头的无效内容。应为“{MaturityDate, Coupon, DisplayName}”之一。 (第 35 行,第 17 列)]
[cvc-complex-type.2.3:元素'BidPrice'不能有字符[children],因为该类型的内容类型是仅元素。 (第 35 行,第 35 列)]
[cvc-complex-type.2.3:元素'MidPrice'不能有字符[children],因为该类型的内容类型是仅元素。 (第 36 行,第 38 列)]**
@Jon、@skaffman,你有什么建议吗?
非常感谢
【问题讨论】: