Укажите элементы из разных классов в XSD / XML - PullRequest
0 голосов
/ 26 сентября 2019

У меня проблема с указанием элементов XML из другого класса.

У меня есть текущий класс полезной нагрузки, и один из элементов имеет тип из другого файла в моей исходной директории.Давайте назовем этот тест.Примечание. Я попытался поместить класс Test в PersonPayload, и он работает нормально.Проблемы возникают только в отдельном классе.

@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({Attributes.Test.class})
@XmlType(name = "GeoResponsePayload", propOrder=
{"age", "height", "test"})
@XmlRootElement(name = PersonPayload)
public class PersonPayload implements Payload {
    protected int age;
    protected int height;
    protected Test test = new Test(1,2);
}

Тогда в Attributes.java у меня есть следующее:

public class Attributes extends BaseAttributes{
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "Test", propOrder =
    {"var1", "var2"})
    public static class Test{
        Test(){
        }

        public Test(int var1, int var2){
            this.var1 = var1;
            this.var2 = var2;
        }

        @XmlElement(required = true)
        protected int var1;
        @XmlElement(required = true)
        protected int var2;
}

Для схемы, которую я имею:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="namespace1"
    xmlns="namespace1"
    elementFormDefault="qualified">

  <xs:complexType name="Test">
    <xs:sequence>
      <xs:element name="var1" type="xs:int"/>
      <xs:element name="var2" type="xs:int"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PersonsPayload">
    <xs:sequence>
      <xs:element name="age" type="xs:int"/>
      <xs:element name="height" type="xs:int"/>
      <xs:element name="test" type="Test"/>
    </xs:sequence>
  </xs:complexType>

Получение следующей ошибки при сортировке:

Invalid content was found starting with element 'var1'. One of '{"namespace1":var1}' is expected.]

Любая помощь приветствуется.Спасибо!

...