Есть такой XML
<apartment>
<area total="67.60" heating="65.00"/>
</apartment>
Незнаю как мне правильно указать total и heating. Для Area нужно создавать отдельный класс? Или можно как то иначе?
Всё очень просто. Здесь можно сгенерить XSD по вашему XML. Затем выполняем команду xjc ваш_файл.xsd
в результате чего получите два файла Appartment.java и ObjectFactory.java
Appartment.java
// Этот файл создан с помощью архитектура JavaTM для реализации примера XML Binding(JAXB), v2.2.8-b130911.1802 // См. http://java.sun.com/xml/jaxb // Любые изменения этого файла будут потеряны // после повторной компиляции исходной схемы. // Время создания: гггг.ММ.дд в чч:мм:сс PM MSK // package generated; import java.math.BigDecimal; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; /** *Класс Java для anonymous complex type. * *
В следующем фрагменте схемы указано ожидаемое содержимое данного класса. * *
* <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="area"> * <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <attribute name="total" type="{http://www.w3.org/2001/XMLSchema}decimal" /> * <attribute name="heating" type="{http://www.w3.org/2001/XMLSchema}decimal" /> * </restriction> * </complexContent> * </complexType> * </element> * </sequence> * </restriction> * </complexContent> * </complexType> ** * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "area" }) @XmlRootElement(name = "apartment") public class Apartment { @XmlElement(required = true) protected Apartment.Area area; /** * Получает значение свойства area. * * @return * possible object is * {@link Apartment.Area } * */ public Apartment.Area getArea() { return area; } /** * Задает значение свойства area. * * @param value * allowed object is * {@link Apartment.Area } * */ public void setArea(Apartment.Area value) { this.area = value; } /** *Класс Java для anonymous complex type. * *
В следующем фрагменте схемы указано ожидаемое содержимое данного класса. * *
* <complexType> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <attribute name="total" type="{http://www.w3.org/2001/XMLSchema}decimal" /> * <attribute name="heating" type="{http://www.w3.org/2001/XMLSchema}decimal" /> * </restriction> * </complexContent> * </complexType> ** * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "") public static class Area { @XmlAttribute(name = "total") protected BigDecimal total; @XmlAttribute(name = "heating") protected BigDecimal heating; /** * Получает значение свойства total. * * @return * possible object is * {@link BigDecimal } * */ public BigDecimal getTotal() { return total; } /** * Задает значение свойства total. * * @param value * allowed object is * {@link BigDecimal } * */ public void setTotal(BigDecimal value) { this.total = value; } /** * Получает значение свойства heating. * * @return * possible object is * {@link BigDecimal } * */ public BigDecimal getHeating() { return heating; } /** * Задает значение свойства heating. * * @param value * allowed object is * {@link BigDecimal } * */ public void setHeating(BigDecimal value) { this.heating = value; } } }
ObjectFactory.java
// Этот файл создан с помощью архитектура JavaTM для реализации примера XML Binding(JAXB), v2.2.8-b130911.1802 // См. http://java.sun.com/xml/jaxb // Любые изменения этого файла будут потеряны после повторной компиляции исходной схемы. // Время создания: гггг.ММ.дд в чч:мм:сс PM MSK // package generated; import javax.xml.bind.annotation.XmlRegistry; /** * This object contains factory methods for each * Java content interface and Java element interface * generated in the generated package. *An ObjectFactory allows you to programatically * construct new instances of the Java representation * for XML content. The Java representation of XML * content can consist of schema derived interfaces * and classes representing the binding of schema * type definitions, element declarations and model * groups. Factory methods for each of these are * provided in this class. * */ @XmlRegistry public class ObjectFactory { /** * Create a new ObjectFactory that can be used to create * new instances of schema derived classes for package: generated * */ public ObjectFactory() { } /** * Create an instance of {@link Apartment } * */ public Apartment createApartment() { return new Apartment(); } /** * Create an instance of {@link Apartment.Area } * */ public Apartment.Area createApartmentArea() { return new Apartment.Area(); } }
Скорее всего придется делать два класса: первый будет @XmlRootObject и будет содержать ссылку на второй, где будет указано total и heating
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть одна функция которая работает как сервис, но она не срабатывает, я не могу понять почемуВот код функции:
Имется две таблицы: Судья и СоревнованиеОдно соревнование судят несколько судей, один и тот же судья может судить несколько соревнований