2010-01-19 2 views
1

Использование Castor разобрать следующий XML в POJOs с помощью файла отображения достаточно прост:с помощью Castor для синтаксического анализа XML на основе значений атрибутов

<human name="bob"/> 
<dog owner="alice"/> 

Он использует имя элемента для отображения в классе. Но что, если атрибут должен использоваться для отображения? например .:

<animal type="human" name="bob"/> 
<animal type="dog" owner="alice"/> 

Это надуманный пример основан на XML, что я должен потреблять (Тхо я не автор этого!). Любые идеи о том, как подойти к этому с помощью файлов сопоставления Castor?

ответ

0

Есть два способа приблизиться к этому. Измените свою структуру классов Java, чтобы человек и собака расширили животное, а затем запишите файл сопоставления для Animal.

Или просто используйте XSLT для преобразования данных. Что-то вроде этого могло бы работать:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:template match="animal"> 
    <xsl:text disable-output-escaping="yes"><![CDATA[<]]></xsl:text> 
     <xsl:value-of select="@type" /><xsl:text disable-output-escaping="yes"> </xsl:text>name="<xsl:value-of select="@name" />" 
    <xsl:text disable-output-escaping="yes"><![CDATA[/>]]></xsl:text> 
</xsl:template> 
</xsl:stylesheet> 

 Смежные вопросы

  • Нет связанных вопросов^_^