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

大容量重命名JAX绑定文件中的complexType元素,即bindings.xjb?

闾丘玺
2023-03-14

我正在使用一个外部第三方WSDL文件,并试图从中生成Java代码。

WSDL包含 之间的名称冲突。例如:

      <s:element name="Foo"> <!-- name conflict -->
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="SoapMessage" type="tns:Foo" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="Foo"> <!-- name conflict -->
        <s:complexContent mixed="false">
          <s:extension base="tns:SoapMessageBase">
            <s:sequence>
              <s:element minOccurs="0" maxOccurs="1" name="Request" type="tns:FooRequest" />
              <s:element minOccurs="0" maxOccurs="1" name="Response" type="tns:FooResponse" />
            </s:sequence>
          </s:extension>
        </s:complexContent>
      </s:complexType>

到目前为止,我所能找到的是在jaxb:nameXmlTransform typeName前缀不起作用的情况下,每个问题都使用

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" jaxb:version="2.0">
   <jaxb:bindings schemaLocation="schema.xsd" node="/xsd:schema">
      <jaxb:schemaBindings>
         <jaxb:package name="com.mycompany.hi"/>
         <jaxb:nameXmlTransform>
            <jaxb:typeName prefix="Hi_"/>
            <jaxb:elementName prefix="Hi_"/>
         </jaxb:nameXmlTransform>
      </jaxb:schemaBindings>
   </jaxb:bindings>
</jaxb:bindings> 

但挑战在于 -外部WSDL提供程序根本不提供任何.xsd文件。

这是只提供WSDL的常见场景吗?还是只是我错过了什么?

谢了!

共有1个答案

田彬郁
2023-03-14

结果schemalocation=“./services.wsdl#types1”解决了这个问题。现在我可以不用XSD从WSDL生成代码。

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" jaxb:version="2.0">
    <jaxb:bindings schemaLocation="./services.wsdl#types1">
        <jaxb:schemaBindings>
            <jaxb:nameXmlTransform>
                <jaxb:typeName suffix="Type" />
                <jaxb:elementName suffix="Element" />
            </jaxb:nameXmlTransform>
        </jaxb:schemaBindings>
    </jaxb:bindings>
</jaxb:bindings>
 类似资料:
  • 问题内容: 我想批量重命名目录中的多个文件,以便从文件名中删除前面的数字和连字符。 如何使用linux命令执行此操作? 问题答案: 这应该使它: 它从块的开头(即数字)开始多次,然后连字符并将其从文件名中删除。 如果不在您的计算机中,则可以使用循环和: 测试 要么:

  • 问题内容: 有没有一种简单的方法可以使用Python重命名目录中已包含的一组文件? 示例: 我有一个充满* .doc文件的目录,我想以一致的方式重命名它们。 X.doc->“ new(X).doc” Y.doc->“ new(Y).doc” 问题答案: 这样的重命名非常容易,例如使用os和glob模块: 然后可以在示例中使用它,如下所示: 上面的示例会将dir中的所有文件都转换为,其中是文件的先前

  • 本文向大家介绍wpf 绑定到另一个命名元素的属性,包括了wpf 绑定到另一个命名元素的属性的使用技巧和注意事项,需要的朋友参考一下 示例 您可以绑定到命名元素上的属性,但是命名元素必须在范围内。            

  • 问题内容: 我有大量的格式文件,以及。 如何重命名这些文件,使它们全部为大写,而忽略名称的数字部分? 问题答案:

  • 英文原文:http://emberjs.com/guides/templates/binding-element-class-names/ 像其他所有属性一样,HTML元素的class属性也可以被绑定,如下所示: 1 2 3 <div {{bind-attr class="priority"}}> Warning! </div> 如果控制器的priority属性的值是"p4",上面的模板将

  • 我一直在使用PDF文件中的命名目标来打开文件中特定位置的PDF文件。负责生成PDF文档的团队使用工具从图书标记自动生成命名目的地,因此命名目的地的名称往往类似于*9\u Glossary*或*Additional\u Information*。我们被要求用多种语言制作相同的文档。我预计我们将收到多种外语的PDF文档,在相同的位置带有书签,但图书标记的名称当然将使用这些其他语言,自动生成的命名目的地