将@Entity注释附加到来自wsdl的jaxb生成的类

时间:2016-03-11 15:47:14

标签: binding jaxb cxf wsdl2java

我的目标是将isblock1 = isblock2 = isblock3 = False fout = [] # construct also all the other variables that you want to collect. with open(file, 'r') as file: lines = file.readlines() #read all the lines for line in lines: if isblock1: (f, psd, ipj, itj) = line.split() fout.append(f) #do this also with the other variables if isblock2: (t1, p1, p2, p12) = line.split() if isblock3: (t2, v1, v2) = line.split() if 'Frequency' is in line: isblock1 = True isblock2 = isblock3 = False if 'Phasor' is in line: isblock2 = True isblock1 = isblock3 = False if 'Voltage' is in line: isblock3 = True isblock1 = isblock2 = False 注释添加到从wsdl生成的类中。我正在使用@Entity的{​​{1}}目标,并指向本地wsdl文件。我可以毫无问题地生成所有源代码,但是当我尝试添加绑定文件时,我遇到了问题。

这里是wsdl的一部分(文件是cxf-codegen-plugin并且在我的资源目录中):

wsdl2java

我的第一个问题是我真的不确定绑定文件中应该包含哪些内容。首先,我非常确定我需要CAAudit.wsdl绑定才能使用wsdl(<?xml version="1.0" encoding="UTF-8" ?> <wsdl:definitions targetNamespace="http://www.ocse.gov/quick/wsdl/CAAudit.wsdl" xmlns:audw="http://www.ocse.gov/quick/wsdl/CAAudit.wsdl" xmlns:audx="http://www.ocse.gov/quick/wsdl/CAAudit.xsd" xmlns:qikrsp="urn:us:gov:hhs:acf:qikrsp" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="CAAudit" > <wsdl:types> <xsd:schema targetNamespace="http://www.ocse.gov/quick/wsdl/CAAudit.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <xsd:import namespace="urn:us:gov:hhs:acf:qikrsp" schemaLocation="QuickResponse.xsd" /> <xsd:complexType name="NotifyCAAuditRequest" > <xsd:sequence> <xsd:element ref="qikrsp:QuickResponse" /> </xsd:sequence> </xsd:complexType> .... 绑定只有jaxws属性),尽管我不需要生成Web服务类。

接下来,我不确定我是否不确定在schema元素中引入新的xmlns是否会导致xpath搜索出现问题。我在使用notepad ++的xpath评估时遇到了问题。

另外,我不确定QuickResponse元素(我想要注释的类)是否由引用定义,这阻碍了我的努力。我不确定是否或如何(或在哪里)包含引用的xsd文件。

这是一个可能的绑定文件(我只是试图让类jaxb开始):

schemaLocation

1 个答案:

答案 0 :(得分:1)

我没有设法自定义WSDL中嵌入的模式。这是我最近的努力:

https://github.com/highsource/jaxb2-annotate-plugin/blob/master/tests/jaxws/src/main/resources/wsdl-bindings.xjb

与WSDL一起使用的是通过SCD附加自定义。但SCD不允许专有的自定义元素(如annotate:*)。所以这对jaxb2-annotate-plugin没有帮助。

因此唯一可行的方法是将WSDL中的模式提取到自己的文件中。