草庐IT

Java/JAXB : Unmarshall Xml to specific subclass based on an attribute

是否可以使用JAXB根​​据xml的属性将xml解码为特定的Java类?我想要一个包含三角形和正方形的Shape对象列表,每个对象都有自己特定于形状的属性。即:abstractclassShape{intpoints;//...etc}classSquareextendsShape{Stringsquare-specific-attribute;//...etc}classTriangleextendsShape{Stringtriangle-specific-attribute;//...etc}我目前只是将所有属性放在一个大的“形状”类中,这并不理想。如果形状被正确命名为xml元素

Java/JAXB : Unmarshall Xml to specific subclass based on an attribute

是否可以使用JAXB根​​据xml的属性将xml解码为特定的Java类?我想要一个包含三角形和正方形的Shape对象列表,每个对象都有自己特定于形状的属性。即:abstractclassShape{intpoints;//...etc}classSquareextendsShape{Stringsquare-specific-attribute;//...etc}classTriangleextendsShape{Stringtriangle-specific-attribute;//...etc}我目前只是将所有属性放在一个大的“形状”类中,这并不理想。如果形状被正确命名为xml元素

java - 缺少 JAXB 命名空间前缀

我已经从XSD生成了Java类,从解码的角度来看,一切正常。但是,当我从JAXB类中编码时,我得到以下信息:Sample...但我需要Sample...如何通过Java控制它?非常感谢 最佳答案 您可以在package-info类上使用@XmlSchema注释为命名空间分配前缀:@XmlSchema(namespace="http://poc.cmc.com/ScreenLayout",elementFormDefault=XmlNsForm.QUALIFIED,xmlns={@XmlNs(prefix="ns0",namespac

java - 缺少 JAXB 命名空间前缀

我已经从XSD生成了Java类,从解码的角度来看,一切正常。但是,当我从JAXB类中编码时,我得到以下信息:Sample...但我需要Sample...如何通过Java控制它?非常感谢 最佳答案 您可以在package-info类上使用@XmlSchema注释为命名空间分配前缀:@XmlSchema(namespace="http://poc.cmc.com/ScreenLayout",elementFormDefault=XmlNsForm.QUALIFIED,xmlns={@XmlNs(prefix="ns0",namespac

java - 什么是 .episode 文件..?

什么是JAXB中的.episode文件..?它是由JAXB生成的,还是我们为了避免JAXB重新生成相同类而操作的配置文件..? 最佳答案 注意:我是EclipseLinkJAXB(MOXy)的负责人,也是JAXB2(JSR-222)专家组的成员。.episode文件由XJC(XMLSchematoJava)编译器生成。它是将模式类型与现有类相关联的模式绑定(bind)。当您有一个由其他模式导入的XML模式时,它很有用,因为它会阻止重新生成模型。下面是一个例子:Product.xsd由于多个XML模式导入Product.xsd,我们可

java - 什么是 .episode 文件..?

什么是JAXB中的.episode文件..?它是由JAXB生成的,还是我们为了避免JAXB重新生成相同类而操作的配置文件..? 最佳答案 注意:我是EclipseLinkJAXB(MOXy)的负责人,也是JAXB2(JSR-222)专家组的成员。.episode文件由XJC(XMLSchematoJava)编译器生成。它是将模式类型与现有类相关联的模式绑定(bind)。当您有一个由其他模式导入的XML模式时,它很有用,因为它会阻止重新生成模型。下面是一个例子:Product.xsd由于多个XML模式导入Product.xsd,我们可

java - JAXB:我应该如何编码复杂的嵌套数据结构?

我有几个复杂的数据结构,比如Map>Set>Set>>Map>>andsoon(morecomplexdatastructures)注意:就我而言,使用Set还是List并不重要。现在我知道JAXB让我定义XmlAdapter的,这很好,但我不想为每个给定的数据结构定义一个XmlAdapter(这将是太多的复制和粘贴代码)。我试图通过声明两个泛化XmlAdapter来实现我的目标:一个用于map:MapAdapter一组:SetAdapter问题:JAXB提示如下:javax.xml.bind.JAXBException:classjava.util.Collections$Unmod

java - JAXB:我应该如何编码复杂的嵌套数据结构?

我有几个复杂的数据结构,比如Map>Set>Set>>Map>>andsoon(morecomplexdatastructures)注意:就我而言,使用Set还是List并不重要。现在我知道JAXB让我定义XmlAdapter的,这很好,但我不想为每个给定的数据结构定义一个XmlAdapter(这将是太多的复制和粘贴代码)。我试图通过声明两个泛化XmlAdapter来实现我的目标:一个用于map:MapAdapter一组:SetAdapter问题:JAXB提示如下:javax.xml.bind.JAXBException:classjava.util.Collections$Unmod

java - 如何找回 "Eclipse >Generate>Jaxb classes"选项?

我最近不得不迁移到一台新机器并重新安装了Eclipse。目前,我需要从xsd生成JAXB类。我不太记得我安装了什么,但在我的旧Eclipse中,我有选项-rightclick-generate-jaxb类。谁知道我必须安装/插件才能找回它?我正在考虑安装Dali,这似乎是正确的,但我很确定我上次没有安装大理。和上次一样,我还在构建路径中包含了jaxbjar,所以应该没问题。我正在使用Eclipse3.6和JavaSE1.6。 最佳答案 如果您没有JavaEE:帮助>>安装新软件>>适用于:--所有可用站点--搜索JAXB然后选择We

java - 如何找回 "Eclipse >Generate>Jaxb classes"选项?

我最近不得不迁移到一台新机器并重新安装了Eclipse。目前,我需要从xsd生成JAXB类。我不太记得我安装了什么,但在我的旧Eclipse中,我有选项-rightclick-generate-jaxb类。谁知道我必须安装/插件才能找回它?我正在考虑安装Dali,这似乎是正确的,但我很确定我上次没有安装大理。和上次一样,我还在构建路径中包含了jaxbjar,所以应该没问题。我正在使用Eclipse3.6和JavaSE1.6。 最佳答案 如果您没有JavaEE:帮助>>安装新软件>>适用于:--所有可用站点--搜索JAXB然后选择We