Comments (3)
If I use JavaGen
instead of KotlinGen
as base class, the error is almost identical:
java.lang.NullPointerException: Cannot get property 'imports' on null object
at com.javagen.schema.model.MSource$Imports.leftShift(MSource.groovy:83)
at com.javagen.schema.model.MSource$Imports$leftShift.call(Unknown Source)
at com.javagen.schema.java.JavaJacksonCallback$_gen_closure1.doCall(JavaJacksonCallback.groovy:108)
at com.javagen.schema.java.JavaJacksonCallback.gen(JavaJacksonCallback.groovy:105)
at com.javagen.schema.java.JavaJacksonCallback$gen.call(Unknown Source)
at com.javagen.schema.java.JavaGen.visit(JavaGen.groovy:357)
at com.javagen.schema.xml.XmlSchemaVisitor$visit$2.call(Unknown Source)
at com.javagen.schema.xml.XmlSchemaVisitor$Trait$Helper.visit(XmlSchemaVisitor.groovy:37)
at com.javagen.schema.xml.XmlSchemaVisitor$Trait$Helper$visit$1.call(Unknown Source)
at com.javagen.schema.java.JavaGen.visit(JavaGen.groovy:143)
at com.javagen.schema.java.JavaGen$visit.callCurrent(Unknown Source)
at com.javagen.schema.java.JavaGen.gen(JavaGen.groovy:126)
at com.javagen.schema.java.JavaGen$gen$3.call(Unknown Source)
from schema-gen.
I debugged to it and figured that it processes an enum type and then fails to get it's parent class (the left-shift operator on enumClass.imports
internally accesses enumClass.parent
and that is null):
This is the XSD snippet it stumbles across:
<xs:simpleType name="boolean">
<xs:restriction base="xs:string">
<xs:enumeration value="True" />
<xs:enumeration value="False" />
</xs:restriction>
</xs:simpleType>
xjc creates the following Java POJO for this:
@XmlType(name = "boolean")
@XmlEnum
public enum Boolean {
@XmlEnumValue("True")
TRUE("True"),
@XmlEnumValue("False")
FALSE("False");
private final String value;
Boolean(String v) {
value = v;
}
public String value() {
return value;
}
public static Boolean fromValue(String v) {
for (Boolean c: Boolean.values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
I'm not exactly sure what this "parent" is supposed to mean in this context. XSD-wise, this type (and others) are common types that reside in a separate CommonTypes.xsd
and that are import
ed into the specific business XSD right after the xsd:schema
root element (before the first xsd:element
).
from schema-gen.
I wrote some code to flatten the import statement and include all the imported element definitions in the source file. Still, the code exits for the Boolean
type just as before. I found another issue while testing a different XSD file, I'll open up a separate ticket for that.
from schema-gen.
Related Issues (20)
- Support for multiple xsd HOT 1
- No namespace registered for prefix HOT 4
- [Question]: Run without plugin HOT 2
- Invalid `static` keyword for nested Kotlin classes HOT 1
- When i upgrade the gradle version to 6, below error is coming HOT 1
- NeTEx XSD schema
- fractionDigits facet is not recognized HOT 2
- Stack overflow due to cyclic dependencies HOT 3
- Invalid enum and variable names
- Unable to execute DartGenMain.groovy HOT 1
- still usable?
- Complex element with choice is not generated correct anymore HOT 1
- No such property: val for class: com.javagen.schema.kotlin.KotlinJacksonCallback HOT 3
- StackOverflowError (no error message): Don't re-load and parse a file previously loaded and parsed. HOT 1
- TODO -> IllegalStateException
- class com.javagen.schema.java.JavaGen, unresolved supertypes: FieldHelper HOT 1
- Bug java 12
- Fix plugin accpect xsd:include
- Sample for Kotlin/JS? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from schema-gen.