FasterXML / FasterXML/jackson-dataformat-xml

Support XML element name based on runtime type

Đang mở
#679 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
631
Fork
246
Merge trung bình
7 ngày 9 giờ
Pull request đã merge (30 ngày)
13

Mô tả

XSD schema's support a way to name an element based on its runtime type through [*substitution groups*](https://www.w3.org/TR/xmlschema-1/#key-equivalenceClass). I'm trying to deserialise such a substitution group. Is this supported in some way?

Example. Suppose there is two types of `Animal`s: `Cow`s and `Goat`s. Based on their type, I want their element to be named either `cow` or `goat`. This would be modelled as follows:

XSD:
``` xml









```

XML example instances:
``` xml

```
``` xml

```

Java model:
``` java
@XmlRootElement(name="document")
public class Document {
private Animal animal;

public Animal getAnimal() {
return animal;
}
public void setAnimal(Animal animal) {
this.animal = animal;
}
}

public class Animal {
@JacksonXmlProperty(isAttribute = true)
private String name;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

public class Cow extends Animal {}

public class Goat extends Animal {}
```

Is there a way of annotating the classes to get the desired behaviour?

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.