2016-11-17 6 views
1

Vendor.xsd가 있는데, 네임 스페이스 정의가 공급 업체 특정 네임 스페이스 http://vendor.com/xjc-plugins을 참조합니다. 스 니펫은 아래와 같습니다 :공급 업체 특정 네임 스페이스에 대해 지원되지 않는 바인딩 네임 스페이스 예외가 있습니다.

... 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:common="http://annox.dev.java.net" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:vendor="http://vendor.com/xjc-plugins" 
elementFormDefault="qualified" 
jaxb:extensionBindingPrefixes="vendor common" 
jaxb:version="2.0"> 
... 
xs:complexType name="VendorType"> 
    <xs:annotation> 
     <xs:appinfo> 
      <vendor:package>vendor.package</vendor:package> 
     </xs:appinfo> 
    </xs:annotation> 
... 

내가 명령 줄이나에서 하나 xjc를 사용하여 jaxbs을 생성 할 때 다음과 같은 예외를 받는다는-jaxb22을-플러그인은 발생

Unsupported binding namespace "http://vendor.com/xjc-plugins". Perhaps you meant "http://annox.dev.java.net"? 

받는다는 플러그인 내가 사용하고 여기에 주어진다 :

 <plugin> 
    <groupId>org.jvnet.jaxb2.maven2</groupId> 
    <artifactId>maven-jaxb22-plugin</artifactId> 
    <version>0.13.1</version> 
    <executions> 
     <execution> 
     <goals> 
      <goal>generate</goal> 
     </goals> 
     <configuration> 
      <schemaDirectory>src/main/resources</schemaDirectory> 
      <schemaIncludes> 
      <include>Vendor.xsd</include> 
      </schemaIncludes> 
      <generatePackage>com.vendor.model</generatePackage> 
      <extension>true</extension> 
      <args> 
      <arg>-Xannotate</arg> 
      </args> 
      <plugins> 
      <plugin> 
       <groupId>org.jvnet.jaxb2_commons</groupId> 
       <artifactId>jaxb2-basics-annotate</artifactId> 
       <version>1.0.2</version> 
      </plugin> 
      <plugin> 
       <groupId>org.jvnet.jaxb2_commons</groupId> 
       <artifactId>jaxb2-basics</artifactId> 
       <version>1.11.1</version> 
      </plugin> 
      <plugin> 
       <groupId>org.jvnet.jaxb2_commons</groupId> 
       <artifactId>jaxb2-basics-tools</artifactId> 
       <version>1.11.1</version> 
      </plugin> 
      </plugins> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

어떤 아이디어라도 환영한다?

답변

1

maven-jaxb2-plugin 구성의 plugins 섹션에 XJC 플러그인이 포함되어 있지 않은 것으로 보입니다. 바인딩 네임 스페이스는 일부 플러그인에 의해 확인되어야합니다. jaxb2-basics만을 포함하지만 http://vendor.com/xjc-plugins을 인정하는 플러그인은 포함하지 않습니다.

+0

그렇다면 벤더 jxc 플러그인 jar를 가져야한다고 말하는 것입니까? 하나 있다고 가정하면 – theo

+0

jaxb : extensionBindingPrefixes = "vendor"가 있으면 오랫동안 플러그인이 필요합니다. 'vendor' 네임 스페이스를 인정합니다. 플러그인을 가져 오거나, 이러한 커스터마이징을 인정하는 플러그인을 작성하거나, 처리하기 전에 스키마를 패치하는 등의 방법으로'jaxb : extensionBindingPrefixes = "vendor"를 제거하십시오. 마지막으로, 공급 업체와 이야기를 나누십시오.이 XJC 관련 항목은 공개 스키마에 속하지 않습니다. 공급 업체는 스키마에서이 파일을 바인딩 파일로 옮겨야합니다. – lexicore