> -----Original Message-----
> From: Ladislav Lenčucha [mailto:[email protected]]
> Sent: Friday, December 07, 2012 7:23 AM
> To: [email protected]
> Subject: Re: Why would XJC not generate a class for a root element?
> 
> In that case, it would be really useful to know which jaxb version you
> use
> and to see the relevant parts of your Xsd..

I appear to have version 2.1.13 of jaxb-impl and jaxb-xjc.

Here is a slightly translated version of the relevant schema:
-------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema";
                
targetNamespace="http://www.bar.com/automation/foo/schema/config/v1.0";
                xmlns:tns="http://www.bar.com/automation/foo/schema/config/v1.0";
                elementFormDefault="qualified">
        <complexType name="fooConfigType">
                <sequence>
                        <element name="workflowDefinitions" 
type="tns:workflowDefinitionsType"/>
                        <element name="channelDefinitions" 
type="tns:channelDefinitionsType"/>
                </sequence>
                <attribute name="apiversion" type="string" use="required"/>
        </complexType>
        <complexType name="workflowDefinitionsType">
                        <sequence>
                                <element name="workflowDefinition" 
type="tns:workflowDefinitionType" minOccurs="0" maxOccurs="unbounded"/>
                        </sequence>
        </complexType>
        <complexType name="channelDefinitionsType">
                <sequence>
                        <element name="channelDefinition" 
type="tns:channelDefinitionType" minOccurs="0" maxOccurs="unbounded"/>
                </sequence>
        </complexType>
        <complexType name="workflowDefinitionType">
                <sequence>
                        <element name="queryFragment" minOccurs="1" />
                        <element name="queryOrder" minOccurs="1" type="int" />
                </sequence>
                <attribute name="id" type="ID" use="required" />
                <attribute name="name" type="string" use="required" />
                <attribute name="label" type="string" use="required" />
                <attribute name="order" type="int" use="required" />
                <attribute name="render" type="boolean" use="required" />
        </complexType>
        <complexType name="channelDefinitionType">
                <sequence>
                        <element name="services" minOccurs="1">
                                <complexType>
                                        <sequence>
                                                <element name="service" 
type="tns:serviceType" minOccurs="0" maxOccurs="unbounded"/>
                                        </sequence>
                                </complexType>
                        </element>
                </sequence>
                <attribute name="name" type="string" use="required"/>
        </complexType>
        <complexType name="workflowAndThresholdsType">
                <sequence>
                </sequence>
                <attribute name="workflow" type="IDREF" use="required"/>
                <attribute name="yellow" type="float" use="required"/>
                <attribute name="orange" type="float" use="required"/>
                <attribute name="red" type="float" use="required"/>
        </complexType>
        <complexType name="serviceType">
                <sequence>
                        <element name="handlers" minOccurs="1">
                                <complexType>
                                        <sequence>
                                                <element name="handler" 
type="string" minOccurs="0" maxOccurs="unbounded"/>
                                        </sequence>
                                </complexType>
                        </element>
                        <element name="perfThresholds" 
type="tns:perfThresholdsType" minOccurs="1"/>
                        <element name="workflows" minOccurs="1">
                                <complexType>
                                        <sequence>
                                                <element name="workflow" 
type="tns:workflowAndThresholdsType" minOccurs="0" maxOccurs="unbounded"/>
                                        </sequence>
                                </complexType>
                        </element>
                </sequence>
                <attribute name="id" type="ID" use="required"/>
                <attribute name="label" type="string" use="required"/>
                <attribute name="order" type="int" use="required"/>
        </complexType>
        <complexType name="perfThresholdsType">
                <attribute name="yellow" type="int" use="required"/>
                <attribute name="orange" type="int" use="required"/>
                <attribute name="red" type="int" use="required"/>
        </complexType>
        <element name="fooConfig" type="tns:fooConfigType" />
</schema>
-------------------------------

Here's a small excerpt of "mvn -X", when it was parsing this schema and 
generating the code for it:
----------------------------
parsing a schema...
compiling a schema...
[INFO] generating code
unknown location

com\bar\foo\domain\config\ChannelDefinitionType.java
com\bar\foo\domain\config\ChannelDefinitionsType.java
com\bar\foo\domain\config\ObjectFactory.java
com\bar\foo\domain\config\PerfThresholdsType.java
com\bar\foo\domain\config\ServiceType.java
com\bar\foo\domain\config\FooConfigType.java
com\bar\foo\domain\config\WorkflowAndThresholdsType.java
com\bar\foo\domain\config\WorkflowDefinitionType.java
com\bar\foo\domain\config\WorkflowDefinitionsType.java
com\bar\foo\domain\config\package-info.java
-----------------------------

It generated "FooConfigType.java", but not "FooConfig".

And here is my plugin reference.  Note that I am processing 3 other schemas 
besides this one, but they are all going into different packages.  I'm using a 
locally-built version of the "element wrapper plugin".
-------------------------------------
<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-xjc-plugin</artifactId>
  <version>2.6.0</version>
  <executions>
    <execution>
      <id>generate-sources</id>
      <phase>generate-sources</phase>
      <goals>
        <goal>xsdtojava</goal>
      </goals>
      <configuration>
        <extensions>
          
<extension>JAXBXMLElementWrapperPlugin:JAXBXMLElementWrapperPlugin:1.0.0</extension>
        </extensions>
        <xsdOptions>
          <xsdOption>
            
<xsd>${basedir}/src/main/resources/schema/serviceCallResults.xsd</xsd>
            <packagename>com.bar.foo.domain.serviceCallResults</packagename>
            <extension>true</extension>
            <extensionArgs>
              <extensionArg>-Xxew</extensionArg>
              <extensionArg>-summary 
${basedir}/target/xew-summary.txt</extensionArg>
              <extensionArg>-instantiate lazy</extensionArg>
            </extensionArgs>
          </xsdOption>
  <xsdOption>
      <xsd>${basedir}/src/main/resources/schema/dataProblems.xsd</xsd>
      <packagename>com.bar.foo.domain.dataProblems</packagename>
      <extension>true</extension>
      <extensionArgs>
    <extensionArg>-Xxew</extensionArg>
    <extensionArg>-summary ${basedir}/target/xew-summary.txt</extensionArg>
    <extensionArg>-instantiate lazy</extensionArg>
      </extensionArgs>
  </xsdOption>
          <xsdOption>
            
<xsd>${basedir}/src/main/resources/schema/serviceAutoRateCallResults.xsd</xsd>
            <packagename>com.bar.foo.domain.autorate</packagename>
            <extension>true</extension>
            <extensionArgs>
              <extensionArg>-Xxew</extensionArg>
              <extensionArg>-summary 
${basedir}/target/xew-summary.txt</extensionArg>
              <extensionArg>-instantiate lazy</extensionArg>
            </extensionArgs>
          </xsdOption>
          <xsdOption>
            <xsd>${basedir}/src/main/resources/schema/fooConfig.xsd</xsd>
            <packagename>com.bar.foo.domain.config</packagename>
            <extension>true</extension>
            <extensionArgs>
              <extensionArg>-Xxew</extensionArg>
              <extensionArg>-summary 
${basedir}/target/xew-summary.txt</extensionArg>
              <extensionArg>-instantiate lazy</extensionArg>
            </extensionArgs>
          </xsdOption>
        </xsdOptions>
      </configuration>
    </execution>
  </executions>
</plugin>
----------------------

> On Fri, Dec 7, 2012 at 4:04 PM, KARR, DAVID <[email protected]> wrote:
> 
> > > -----Original Message-----
> > > From: Ladislav Lenčucha [mailto:[email protected]]
> > > Sent: Thursday, December 06, 2012 10:18 PM
> > > To: [email protected]
> > > Subject: Re: Why would XJC not generate a class for a root element?
> > >
> > > Is the name of the root element and its complex type the same?
> > >
> > > Xjc generates 1 class file for xsd document named after the root
> > > element
> > > and then separate file for each complexType. If the complextType
> name
> > > is
> > > the same as root element name, the root element file is
> overwritten..
> >
> > I never do that.  My type names always end with "Type".
> >
> > The base name of my schema file name is the same as the root element,
> and
> > the type of the root element has "Type" appended to the name.  XJC
> > generated the class for the "Type", but not the root element.
> >
> > > On Fri, Dec 7, 2012 at 1:57 AM, KARR, DAVID <[email protected]> wrote:
> > >
> > > > I have a JAX-RS app that uses XJC to generate classes from 4
> > > different
> > > > schemas.  All four xjc calls in the pom reference a binding file
> > > specific
> > > > to that schema.  All 4 schemas are pretty simple, along with very
> > > similar
> > > > binding files, and the reference in the pom.  They all define a
> > > single
> > > > top-level "element" element, along with several complexType
> elements.
> > > >
> > > > For some reason, the processing of one of those schemas is
> refusing
> > > to
> > > > generate the class corresponding to the root element.  I have a
> > > complexType
> > > > that the element references, and it generated the class for that,
> but
> > > not
> > > > for the element.  The other three schemas get the generated class
> > > > corresponding to the root element.
> > > >
> > > > There are no processing errors.
> > > >
> > > > I'd like to get a solution, but is there some additional
> debugging I
> > > can
> > > > turn on that might give me some useful information?
> > > >
> >

Reply via email to