Как управлять дополнительным объявлением xml для QuickBooks XML

Я столкнулся со следующим xml при работе с интеграцией Quickbooks xml:

<?xml version="1.0" ?>
<?qbxml version="5.0" ?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerQueryRq requestID="5001" iterator="Start"> 
      <MaxReturned>10</MaxReturned> 
      <IncludeRetElement>ListID</IncludeRetElement>
    </CustomerQueryRq>
  </QBXMLMsgsRq>
</QBXML>

Я знаком с объявлением <?xml ...?>, но меня смущает часть <?qbxml version="5.0" ?>. Я предполагаю, что это версия xml, которую понимает Quickbooks. Этот xml действителен? Можно ли управлять с помощью обычных парсеров Java и преобразователя?

Я попытался загрузить xml с помощью обычного DocumentBuilderFactory и сгенерировать вывод с помощью TransformerFactory, но <?qbxml ...?> теряется в процессе. Любые идеи о том, как мне нужно настроить сборщиков и преобразователей, чтобы поддерживать объявление <?qbxml ...?>?


person Ricardo Marimon    schedule 21.12.2011    source источник


Ответы (1)


<?qbxml version="5.0" ?> — это инструкция по обработке. Это что-то значит для Quickbooks, но вы можете игнорировать это, если только оно не содержит информации, которую вы можете каким-то образом использовать. Если вы используете XSLT для обработки, вы можете использовать <xsl:processing-instruction> для создания PI и processing-instruction() для сопоставления их в ваших шаблонах. После того, как вы проанализировали документ в DOM, я не думаю, что есть простой способ получить PI через DOM API, хотя вы, безусловно, можете создавать новые. Существует метод ContentHandler для PI, так что вы можете делать с ними что-то во время синтаксического анализа, если хотите.

person hcayless    schedule 21.12.2011
comment
Наличие правильного имени (Инструкции по обработке) имеет большое значение при поиске в Google... ;-) - person Ricardo Marimon; 21.12.2011