Support XML element name based on runtime type
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- java
- Área
- backend-api-design
Línea de trabajo
Comienza con el modelo Java y el ejemplo de grupo de sustitución de XSD; después, inspecciona cómo las anotaciones de Jackson XML determinan actualmente los nombres de los elementos durante la serialización y la deserialización. Compara las instancias XML de cow y goat con el comportamiento deseado del tipo en tiempo de ejecución; se considera terminado cuando ambas formas se asignan al subtipo de Animal correspondiente y se vuelven a serializar usando el nombre de elemento correspondiente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
XSD schema's support a way to name an element based on its runtime type through substitution groups. I'm trying to deserialise such a substitution group. Is this supported in some way?
Example. Suppose there is two types of Animals: Cows and Goats. Based on their type, I want their element to be named either cow or goat. This would be modelled as follows:
XSD:
<!-- XML root element -->
<xs:element name="document">
<xs:complexType>
<xs:sequence>
<xs:element ref="animal"/> <!-- Note that the name of this element is determined by the actual type of animal -->
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Element names: `Cow`s should be serialised as an element named `cow`, `Goat`s should be serialised as an element named `goat`. -->
<xs:element name="animal" type="Animal" abstract="true" />
<xs:element name="cow" type="Cow" substitutionGroup="animal" />
<xs:element name="goat" type="Goat" substitutionGroup="animal" />
<!-- Types: `Cow` and `Goat` extend from `Animal` -->
<xs:complexType name="Animal">
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
<xs:complexType name="Cow">
<xs:complexContent>
<xs:extension base="Animal" />
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Goat">
<xs:complexContent>
<xs:extension base="Animal" />
</xs:complexContent>
</xs:complexType>
XML example instances:
<document>
<cow name="Cow1" />
</document>
<document>
<goat name="Goat1" />
</document>
Java model:
@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?
- Lenguaje dominante
- Java
- Estrellas
- 636
- Forks
- 250
- Merge medio
- 7 h 10 min
- PR fusionados (30 d)
- 8
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FasterXML/jackson-dataformat-xml
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
FasterXML/jackson-dataformat-xml#931 · 3 comentarios ·
-
XmlMapper with `FAIL_ON_UNKNOWN_PROPERTIES` fails on whitespace-only elementPosiblemente ocupada @arimu1 la tomó hace 89 días. Abiertoto-evaluate
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
-
3.x
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
FasterXML/jackson-dataformat-xml#787 · 1 comentario ·
Todos los issues de FasterXML/jackson-dataformat-xml
Issues similares
-
Cleanup: restore the interrupt flag in AiFailureAnalyzerPosiblemente ocupada @Rishankgupta08 la tomó hoy. Abiertogood first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
seleniumboot/selenium-boot#258 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
dense-analysis/ale#5181 ·
-
bug subsystem:agent-harness triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ShaftHQ/SHAFT_ENGINE#8043 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
johanhaleby/occurrent#1505 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día