Java org.eclipse.jdt.core.dom.SimpleName.setIdentifier由以下原因引起:IllegalArgumentException Jibx?
大家好,我是新的XSD和jibx世界,我面临着一个非常奇怪的问题,在为XSD生成jibx类时,我遇到了以下错误Java org.eclipse.jdt.core.dom.SimpleName.setIdentifier由以下原因引起:IllegalArgumentException Jibx?,java,eclipse,xsd,jibx,Java,Eclipse,Xsd,Jibx,大家好,我是新的XSD和jibx世界,我面临着一个非常奇怪的问题,在为XSD生成jibx类时,我遇到了以下错误 Caused by: java.lang.IllegalArgumentException at org.eclipse.jdt.core.dom.SimpleName.setIdentifier (SimpleName.java:191) at org.eclipse.jdt.core.dom.AST.newSimpleName (AST.java:1303)
Caused by: java.lang.IllegalArgumentException
at org.eclipse.jdt.core.dom.SimpleName.setIdentifier (SimpleName.java:191)
at org.eclipse.jdt.core.dom.AST.newSimpleName (AST.java:1303)
at org.jibx.schema.codegen.ClassBuilder.createNormalMethodCall (ClassBuilder.java:588)
at org.jibx.schema.codegen.StructureClassHolder.addRepeatedProperty (StructureClassHolder.java:1055)
at org.jibx.schema.codegen.StructureClassHolder.addToClass (StructureClassHolder.java:1485)
at org.jibx.schema.codegen.StructureClassHolder.addToClass (StructureClassHolder.java:1478)
at org.jibx.schema.codegen.StructureClassHolder.addToClass (StructureClassHolder.java:1478)
at org.jibx.schema.codegen.StructureClassHolder.generate (StructureClassHolder.java:2146)
at org.jibx.schema.codegen.PackageHolder.generate (PackageHolder.java:210)
at org.jibx.schema.codegen.PackageHolder.generate (PackageHolder.java:227)
at org.jibx.schema.codegen.CodeGen.buildDataModel (CodeGen.java:1572)
at org.jibx.schema.codegen.CodeGen.generate (CodeGen.java:1781)
at org.jibx.schema.codegen.CodeGen.main (CodeGen.java:2206)
at org.jibx.maven.AbstractCodeGenMojo.execute (AbstractCodeGenMojo.java:271)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:192)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
我调试了jibx maven插件,发现了以下观察结果
第191行是引发异常的位置。。。这是价值观
标识符:TelecommunicationAddressUse.toString长度:36
扫描仪。当前位置:27
现在的问题是,我需要在XSD中做些更改来生成jibx类,还是需要做些什么来解决这个问题Eclipse的哪个版本?该代码在当前的Eclipse 2021-03中有很大的不同。该代码引发了一个异常,因为jibx代码给了它一个无效的标识符(不符合Java“简单名称”的规则)@greg-449您想让我在不同的eclipse中试用吗?最新版本的eclipse包含了无效名称的确切内容,例外情况可能会对您有所帮助。正如greg所说,TelecommunicationAddressUse.toString不是一个简单的名称,它是一个限定名称。简单名称中不能有“.”。代码应该尝试一个更开放的名称子类。在你的源代码中,你真的需要限定toString吗?
<xs:simpleType name="TelecommunicationAddressUse">
<xs:restriction base="cs">
<xs:enumeration value="BAD"/>
<xs:enumeration value="CONF"/>
<xs:enumeration value="H"/>
<xs:enumeration value="HP"/>
<xs:enumeration value="HV"/>
<xs:enumeration value="TMP"/>
<xs:enumeration value="WP"/>
<xs:enumeration value="DIR"/>
<xs:enumeration value="PUB"/>
<xs:enumeration value="AS"/>
<xs:enumeration value="EC"/>
<xs:enumeration value="MC"/>
<xs:enumeration value="PG"/>
</xs:restriction> </xs:simpleType>