highsource / highsource/jaxb2-basics

Enhancement for simplifying unbounded sequence

Open
#131 2 comments 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.