У меня проблемы при разборе файла 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>
Я получаю следующее сообщение об ошибке:
class com.db.dbadapter.util.xml.XMLValidatorParserException: SAXParseException (s) встретил: [s4s-elt-invalid-content.1: содержимое 'QuoteFIBondPrice' недопустимо.Элемент 'sequence' недопустим, смещен или встречается слишком часто.(строка: 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)] класс com.db.dbadapter.util.xml.XMLValidatorParserException: SAXParseException (s) обнаружены:
[cvc-complex-type.2.3: элемент 'OfferPrice' не может иметьсимвол [дети], потому что тип содержимого типа только для элемента.(строка: 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)] **
@ Джон, @skaffman, есть ли у вас какие-либо предложения?
Большое спасибо