highsource / highsource/jaxb2-basics
Enhancement for simplifying unbounded sequence
- Dominant language
- Java
- Stars
- 119
- Forks
- 49
- PR merge metrics
- No merged PRs in 30d
Description
Suppose we have a complex type in a schema like this.
```
```
By default XJC will generate a ```List``` inside class Numbers to represent the sequence. When used with simplify plugin, it becomes 2 separate lists ```List number``` and ```List text```. While this works for unmarshalling XML data, it doesn't keep the interconnected relationship between each ```number``` and ```text``` element as defined by the schema, which can make it awkward to program with. Furthermore, when the same object is marshalled back into XML, all ```number``` elements will be placed before all ```text``` elements, which is wrong.
For example, XML data such as
```
1
one
2
two
```
would be marshalled back as
```
1
2
one
two
```
My proposed enhancement for this use case is as follows:
- Generate a static inner class called ```Sequence``` inside generated ```Numbers``` class
- This class would contain 2 fields: ```number``` as ```Integer``` and ```text``` as ```String```.
- The ```Numbers``` class would instead contain a ```List```.
- e.g.
```
public class Numbers {
List sequence;
public static class Sequence {
Integer number;
String text;
}
}
```
One problem I can think of with this approach is when the ```complexType``` happens to have an attribute also named ```sequence```. In such cases I think prefixing or suffixing the name of the field ```List sequence``` with something would suffice.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.