2013-06-22 5 views
3

생성 한 schema.xsd에 대해 globalBinding을 생성하려면 schema.xjb 바인딩 파일을 별도로 작성해야합니다. IntelliJ를 사용하고 있는데이 문제가 maven인지 아니면 Intellij가 수행하고 있는지 (이 예제는 예를 들어 이클립스에서 예상대로 실행 됨) 확실하지 않습니다. 내가 오류는 다음과 같습니다 여기 IntelliJ bindingDirectory for jaxb-maven-plugin

org.xml.sax.SAXParseException; systemId: file:/D:/Projects/Location/To/Project/src/main/resources/xsd/schema.xsd; lineNumber: 7; columnNumber: 10; vendor extension bindings (jaxb:extensionBindingPrefixes) are not allowed in the strict mode. Use -extension. 

내 pom.xml 파일에서 요소를 만들 수 있습니다 :

여기
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxb2-maven-plugin</artifactId> 
      <version>1.5</version> 
      <executions> 
       <execution> 
        <phase>generate-sources</phase> 
        <goals> 
         <goal>xjc</goal> 
        </goals> 
       </execution> 
      </executions> 
      <configuration> 
       <!-- The name of your generated source package --> 
       <packageName>com.my.model.example</packageName> 
        <schemaDirectory>${project.basedir}/src/main/resources/xsd</schemaDirectory> 
       <!-- Well Intellij acts badly when it comes down to binding files, so there is that. --> 
       <bindingDirectory>${project.basedir}/src/main/resources/xjb</bindingDirectory> 
      </configuration> 
     </plugin> 

    </plugins> 

</build> 

가 내 스키마는/SRC에 위치/메인/자원/XSD :

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      id="SampleSchema" 
      targetNamespace="http://sample.com/namespace" 
      elementFormDefault="qualified" 
      xmlns="http://sample.com/namespace" 
     > 

    <xs:element name="Example"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="name" type="xs:string" maxOccurs="unbounded" /> 
       <xs:element name="street" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

</xs:schema> 
여기

은 내 bindingFile는 /의 SRC에 위치/메인/자원/xjb

<jxb:bindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
      version="2.0" 
      xsi:schemaLocation="../xsd/schema.xsd"> 
    <jxb:globalBindings> 
     <xjc:simple/> 
    </jxb:globalBindings> 
</jxb:bindings> 

이것을 해결하는 방법에 대한 힌트가 있으면 좋을 것입니다!

답변

9

오케이 녀석들은 문제가되는 것을 발견했습니다. pom.xml의 <configuration> 요소에 <extension> 요소가 없습니다. 좋아요 :

<configuration> 

<packageName>com.my.model.example</packageName> 
<schemaDirectory>${project.basedir}/src/main/resources/xsd</schemaDirectory> 
<bindingDirectory>${project.basedir}/src/main/resources/xjb</bindingDirectory> 

<!-- tada! --> 
<extension>true</extension> 
</configuration>