Java 使用jaxb的XML解析器

Java 使用jaxb的XML解析器,java,xml,jaxb,Java,Xml,Jaxb,如何使用jaxb获取嵌套xml的对象。我有以下XML- <?xml version="1.0" ?> <file> <markups> <markup> <author>author</author> <name>3w2fg</name> <source>Mobile_iPad</source>

如何使用jaxb获取嵌套xml的对象。我有以下XML-

<?xml version="1.0" ?>
    <file>
    <markups>
    <markup>
        <author>author</author>
        <name>3w2fg</name>
        <source>Mobile_iPad</source>
        <createdOn>2013-05-20T11:22:23</createdOn>
        <entities>
            <entity>
                <entityWdth>209</entityWdth>
                <entityColor>
                    <red>127.5</red>
                    <green>0</green>
                    <blue>127.5</blue>
                </entityColor>
                <entityFillColor>
                    <red>227.5</red>
                    <green>0</green>
                    <blue>327.5</blue>
                </entityFillColor>
                <entityRadian>0</entityRadian>
                <entityEndY>304</entityEndY>
                <entityStX>438</entityStX>
                <entityTypeCode>7</entityTypeCode>
                <entityPageNo>1</entityPageNo>
                <entityHt>183</entityHt>
                <entityCenterX>542.5</entityCenterX>
                <entityName>Rectangle</entityName>
                <entityStY>121</entityStY>
                <entityEndX>647</entityEndX>
                <entityCenterY>212.5</entityCenterY>
            </entity>
        </entities>
    </markup>
</markups>
<name>7987ab12-4915-49e5-8bbd-f98d6054ef6b.JPG</name>
<fileName>IMG_0008.JPG</fileName>
</file>
该对象是使用除entityColor.Red之外的所有值创建的。。。和entityFillColor。红色。。。。这些值为0,0,0,而xml显示它有适当的值

entityColor.Red。。。和entityFillColor。红色。。。具有类型
int
Integer
)。
对颜色对象中的颜色使用
double
double
)、
float
float
)或
String

@XmlAccessorType(XmlAccessType.FIELD)
public class Entity 
{
   //...
   private Color entityColor;
   private Color entityFillColor;
   //...
}  

@XmlAccessorType(XmlAccessType.FIELD)
public class Color 
{
   private double red;   // or float, or String
   private double green; // or float, or String
   private double blue;  // or float, or String
}  
此外,您还可以用最简单的方法解开示例:

File file = javax.xml.bind.JAXB
   .unmarshal(new java.io.File(xmlLocation),File.class);

相应的对象模型是什么样子的?
File file = javax.xml.bind.JAXB
   .unmarshal(new java.io.File(xmlLocation),File.class);