我试图用JAXB从XSD生成java类。
XSD是我公司的官方XSD,因此我不能仅为我的项目修改它们。在害怕在这个网站上尝试和搜索之后,我决定直接问这个问题。
我有这个在我的XSD:
<xs:element name="Line" minOccurs="0" maxOccurs="999">
<xs:complexType>
<xs:sequence>
<xs:element name="Line" minOccurs="0" maxOccurs="999">
<xs:complexType>
<xs:attribute name="reference" type="xs:toto" use="optional">
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="reference" type="xs:toto" use="optional">
</xs:attribute>
</xs:complexType>
</xs:element>
这导致了一个问题:包装。指数行已在包中定义。指数
在查看生成的代码后,我可以看到,我们有一个静态的类行,进入另一个静态的内部类行(在另一个索引下)
我得到错误的行(在顶部底部)嵌套的类型行不能隐藏封闭类型
如果名称发生变化(在xsd上或在java类上一代又一代),我就不再有问题了。
我试图创建一个绑定文件:
<jaxb:bindings schemaLocation="file:../path/myschema.xsd" node="//xs:element[@name='Index']">
<jaxb:bindings node=".//xs:element[@name='Line']" multiple="true">
<jaxb:property name="Lines"/>
</jaxb:bindings>
</jaxb:bindings>
我也有同样的问题。。。因为实际上在索引下,我有两个节点,所以我试着这样做:
<jaxb:bindings schemaLocation="file:path/myxsd.xsd" node="//xs:element[@name='Index']/xs:element[@name='Line']">
<jaxb:bindings node="//xs:element[@name='Line']" multiple="true">
<jaxb:property name="Lines"/>
</jaxb:bindings>
</jaxb:bindings>
或
<jaxb:bindings schemaLocation="file:path/myxsd.xsd" node="//xs:element[@name='Index']">
<jaxb:bindings node="//xs:element[@name='Line']/xs:element[@name='Line']" multiple="true">
<jaxb:property name="Lines"/>
</jaxb:bindings>
</jaxb:bindings>
但我得到一个生成问题:com.sun.istack.SAXParseException2:XPath评估"//xs:元素[@name='Index']/xs:元素[@name='Line']"导致空目标节点
我完全迷路了。我整天都在吃坚果来补偿我的悲伤
如果你有建议;)
提前谢谢
杰弗里
首先配置绑定,将它们作为单独的类生成。
<jaxb:globalBindings localScoping="toplevel"/>
然后,对下面引用的元素使用completeXPath
。
<bindings version="2.1" xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<globalBindings localScoping="toplevel"/>
<bindings schemaLocation="yourschema.xsd">
<bindings node="//xs:element[@name='Index']/xs:complexType/xs:sequence/xs:element[@name='Line']/xs:complexType">
<class name="Lines1"/>
</bindings>
</bindings>
<bindings schemaLocation="yourschema.xsd">
<bindings node="//xs:element[@name='Index']/xs:complexType/xs:sequence/xs:element[@name='Line']/xs:complexType/xs:sequence/xs:element[@name='Line']/xs:complexType">
<class name="Lines2"/>
</bindings>
</bindings>
</bindings>
相比于单纯的数据对象,将context包装成一个提供一些方法的对象会是更好的实践。因为这样能提供一些方法供我们操作context里面的数据。 // dependencies.js export default { data: {}, get(key) { return this.data[key]; }, register(key, value) { this.da
TimeDistributed包装器 Bidirectional包装器
R包是R函数的集合,包含代码和样本数据。 它们存储在R环境中名为"library"的目录下。 默认情况下,R在安装期间安装一组软件包。 当某些特定用途需要时,会在以后添加更多软件包。 当我们启动R控制台时,默认情况下只有默认包可用。 必须明确加载已安装的其他软件包,以供将要使用它们的R程序使用。 所有R语言版本的软件包都列在R软件包中。 以下是用于检查,验证和使用R软件包的命令列表。 检查可用的R
在编程语言的一般术语中,包被设计用于提供使一组名称与另一组名称分离的方式。 在一个包中声明的符号不会与在另一个包中声明的相同符号冲突。 这样,包减少了独立代码模块之间的命名冲突。 LISP阅读器维护一个包含所有符号的表格。 当它找到新的字符序列时,它会创建一个新符号并存储在符号表中。 该表称为包。 当前包由特殊变量* package *引用。 LISP中有两个预定义的包 - common-lisp
问题内容: 首先,我必须说,我一直在此站点上寻找我的问题的答案,我发现了有关此异常的多个主题,但毕竟所有主题对我没有太大帮助,所以这就是为什么我要发布这个。 每次尝试从包裹中恢复信息时,我都会遇到“包裹不可修复”异常。这是我的班级代码。 } 和我的活动代码(此活动检索一个意图,该意图带有我刚刚指定的类型的ArrayList) } LOGCAT: 问题答案: 更改此: 对此: 编辑: 而且看起来您的
A very powerful tool of the Emmet toolkit. It takes an abbreviation, expands it and places currently selected content in the last element of generated snippet. If there’s no selection, action will sil