当前位置: 首页 > 知识库问答 >
问题:

如何将generateElementProperty设置为绑定文件中的本地属性

薛望
2023-03-14

我对JAXB有意见。我的一个元素要求我设置一个jaxbelement ,而不是仅仅设置一个string。我知道这方面的一个解决方案是更改xsd,正如这里讨论的JAXB生成jaxbelement 而不是String,但是xsd是由供应商提供的,我们无法说服他们更改它。

<?xml version="1.0" encoding="utf-8"?>
<jxb:bindings version="1.0" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xs="http://www.w3.org/2001/XMLSchema" jxb:extensionBindingPrefixes="xjc" xmlns:jxb="http://java.sun.com/xml/ns/jaxb">
  <jxb:bindings schemaLocation="../XXXPrivateService.xsd" node="/xs:schema">
    <jxb:globalBindings>
      <xjc:noValidator />
      <xjc:serializable />
    </jxb:globalBindings>
    <jxb:schemaBindings>
      <jxb:package name="com.XXX.YYYY.xsd.XXXprivateservice">
        <jxb:javadoc><![CDATA[<body>TODO</body>]]></jxb:javadoc>
      </jxb:package>
    </jxb:schemaBindings>
  </jxb:bindings>

  <jxb:bindings schemaLocation="../XXXPrivateService_1_2.xsd" node="/xs:schema">
    <jxb:schemaBindings>
      <jxb:package name="com.XXX.YYYY.xsd.XXXprivateservice.two">
        <jxb:javadoc><![CDATA[<body>TODO</body>]]></jxb:javadoc>
      </jxb:package>
    </jxb:schemaBindings>
  </jxb:bindings>

  <jxb:bindings schemaLocation="../XXXPrivateService_1_2_3.xsd" node="/xs:schema">
    <jxb:schemaBindings>
      <jxb:package name="com.XXX.YYYY.xsd.XXXprivateservice.three">
        <jxb:javadoc><![CDATA[<body>TODO</body>]]></jxb:javadoc>
      </jxb:package>
    </jxb:schemaBindings>
  </jxb:bindings>

    <jxb:bindings schemaLocation="../XXXPrivateService_1_2_3_4.xsd" node="/xs:schema">
    <jxb:schemaBindings>
      <jxb:package name="com.XXX.YYYY.xsd.XXXprivateservice.four">
        <jxb:javadoc><![CDATA[<body>TODO</body>]]></jxb:javadoc>
      </jxb:package>
    </jxb:schemaBindings>
  </jxb:bindings>


  <jxb:bindings schemaLocation="../XXXPrivateService_1_2_3_4_5.xsd" node="/xs:schema">
    <jxb:schemaBindings>
      <jxb:package name="com.XXX.YYYY.xsd.XXXprivateservice.five">
        <jxb:javadoc><![CDATA[<body>TODO</body>]]></jxb:javadoc>
      </jxb:package>
    </jxb:schemaBindings>
  </jxb:bindings>

  <jxb:bindings schemaLocation="../XXXPrivateService_1_2_3_4_5_6.xsd" node="/xs:schema">
    <jxb:schemaBindings>
      <jxb:package name="com.XXX.YYYY.xsd.XXXprivateservice.six">
        <jxb:javadoc><![CDATA[<body>TODO</body>]]></jxb:javadoc>
      </jxb:package>
    </jxb:schemaBindings>
  </jxb:bindings>

  <jxb:bindings schemaLocation="../XXXPrivateService_1_2_3_4_5_6_7.xsd" node="/xs:schema">
    <jxb:schemaBindings>
      <jxb:package name="com.XXX.YYYY.xsd.XXXprivateservice.seven">
        <jxb:javadoc><![CDATA[<body>TODO</body>]]></jxb:javadoc>
      </jxb:package>
    </jxb:schemaBindings>
  </jxb:bindings>

</jxb:bindings>
  <xs:element name="PayWithPointsRedemption">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="requestSourceId" type="xs:unsignedInt"/>
        <xs:element minOccurs="0" name="rewardsAccountId" type="xs:unsignedInt"/>
        <xs:element minOccurs="0" name="XXXReferenceId" nillable="true" type="xs:string"/>
        <xs:element minOccurs="0" name="externalChannelCode" nillable="true" type="xs:string"/>
        <xs:element minOccurs="0" name="payWithPointsRedemptionDetails" nillable="true" type="q4:ArrayOfPayWithPointsRedemptionDetail" xmlns:q4="http://ZZZZZ.YYYY.com/XXXRewards"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

共有1个答案

史景铄
2023-03-14

您应该可以像这样在外部绑定中本地设置它

<jxb:bindings schemaLocation="xyz.xsd"
    node="/xs:schema">
    <jxb:schemaBindings>
        <!-- ... -->
    </jxb:schemaBindings>
    <jxb:bindings
        node="/xs:schema/xs:element[@name='PayWithPointsRedemption']/xs:complexType/xs:sequence">
        <jxb:property generateElementProperty="false" />
    </jxb:bindings>
</jxb:bindings>

确保jxb:bindings中的XPath表达式匹配!

 类似资料:
  • 我正在开发自己的网站,它支持多主题,例如 我试图通过为本地存储添加键和值来解决这个问题,我看到了很多关于它的教程,但没有进展。 HTML代码 > 头

  • 我想粘贴一个相对图像url到一个div设置为背景图像。不幸的是,div不会呈现图像。因此,这工作良好,并呈现图像 但这个不是 我也尝试过的事情: 在单引号中包装url 可能吗? 从src文件夹开始 和从“资源”文件夹开始 背景图像的正确url是什么? 更新 我在用VueJs所以这里的情况可能会有所不同?再现的步骤: 使用Vue CLI创建新项目 在中创建 目录 在中创建映像,并将其称为 使用更新a

  • 基本上,我有一个带有DataTemplate选择器的ListView,它基于ListView项使用特定的DataTemplate。 现在,在DataTemplate中,我有一个带有命令的按钮,应该绑定到父视图(或ListView)本身的ViewModel上。 注意,我只想绑定按钮的Command属性,因为文本和其他属性需要绑定到按钮的当前绑定上下文。 DataTemplate的BindingCon

  • 我已经阅读了很多关于这个和其他网站的问题和文章,但我仍然无法让它工作。 我配置了maven来执行我的构建,现在想将工件放入存储库中。我在tomcat中安装了artiFactory,它似乎正在工作。 如果我执行“mvn全新安装”,消息表明工件被上传到本地maven存储库,而不是artifactory: 如果我执行一个“mvn deploy:deploy”文件,指定存储库,消息表明工件正在上传到工件中

  • 问题内容: 我想将配置文件名称设置为整个程序包,但我不知道如何。如果在哪里不是简单的方法,那么我必须用注释标记包和子包中的每个类。 标签不支持这样的属性,所以我不知道。 问题答案: 您可以将个人资料设置为: 文件-用于xml配置 Java配置类 在它们的每一个中,您都可以对特定的软件包使用组件扫描。

  • 我有一个带有标签(TheLabel)的xib...它是一个NSTextField。用户无法编辑它的文本。 我将它的值绑定到控制器类中的NSString*。 我将它的字体绑定到我的controller类中的NSFont*。 我可以在controller类中更改NSString,并且可以看到它反映在标签中。 但是... 我一辈子都弄不清楚怎么打开和关闭下划线。 如果我把这个函数叫做... 如有任何指导