XML文档 <? xml version="1.0" encoding="UTF-8" ?> <! DOCTYPE po SYSTEM "src/sample.dtd" > < po id ="po121" submitted ="2001-10-05" xmlns ="http://www.youkuaiyun.com" > < billTo id ="addr-1" > < company > The Redzero Cop. </ company > < street > Jianguo Road 1ST </ street > < street > Building 1 </ street > < city > Haidian </ city > < state > Beijing </ state > < postalCode > 100071 </ postalCode > </ billTo > < shipTo href ="addr-1" /> < order > < item sku ="o318-BP" quantity ="5" > < description > J2EE programmic </ description > </ item > < item sku ="o947-TI" quantity ="12" > < description > Java WEB Service </ description > </ item > < item sku ="o008-PR" quantity ="133" > < description > C++ develop </ description > </ item > </ order > </ po > Java对象树定义 // 根节点,表示一个订单Po public class Po ... { private String id; private String submitted; private BillTo billTo; private ShipTo shipTo; private Order order; public BillTo getBillTo() ...{ return billTo; } public void setBillTo(BillTo billTo) ...{ this.billTo = billTo; } public Order getOrder() ...{ return order; } public void setOrder(Order order) ...{ this.order = order; } public ShipTo getShipTo() ...{ return shipTo; } public void setShipTo(ShipTo shipTo) ...{ this.shipTo = shipTo; } public String getId() ...{ return id; } public void setId(String id) ...{ this.id = id; } public String getSubmitted() ...{ return submitted; } public void setSubmitted(String submitted) ...{ this.submitted = submitted; } } // Po的子节点,标识送货地址,对应<po><billTo> public class BillTo extends Address ... { private String id; public String getId() ...{ return id; } public void setId(String id) ...{ this.id = id; } } public class ShipTo extends Address ... { private String href; public String getHref() ...{ return href; } public void setHref(String href) ...{ this.href = href; } } public class Address ... { private String company; private String city; private String state; private String postalCode; private ArrayList streets = new ArrayList(); public void addStreet(String street)...{ this.streets.add(street); } public String getCity() ...{ return city; } public void setCity(String city) ...{ this.city = city; } public String getCompany() ...{ return company; } public void setCompany(String company) ...{ this.company = company; } public String getPostalCode() ...{ return postalCode; } public void setPostalCode(String postalCode) ...{ this.postalCode = postalCode; } public String getState() ...{ return state; } public void setState(String state) ...{ this.state = state; }