FasterXML / FasterXML/jackson-dataformat-xml

Support XML element name based on runtime type

未關閉
#679 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Java
星號
631
分支
246
平均合併
7 天 9 小時
30 天內合併 PR
13

描述

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?

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。