users@jaxb.java.net

Re: XSD annotation/documentation to Javadoc request

From: David Walend <david_at_walend.net>
Date: Mon, 11 Aug 2003 13:59:18 -0400

Thanks for the help, Rob. I got a stack trace when I used it verbatum,
but I was able to simplify the xslt somewhat from your suggestions. I
think the problem was putting <jaxb:class> notations wherever there were
<xsd:documentation> tags (not just the elements and complexTypes). It
seems to trip up xjc. (No source code to pin down the problem, so I'm
just guessing from what fixes it. Find the stack trace at the bottom of
the email. java.lang.InternalError -- not something you see every day.)

I think what I need help with is the XPath expression in <xsl:template
match="xsd:element/xsd:annotation/xsd:documentation">. I want to pick
out elements and complexTypes, and add <jaxb:class> tags. For other
<xsd:documentaion> tags, I'll need to add different jaxb tags. Any
suggestions for improvements are welcome.

Thanks,

Dave

---
Latest working version:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="node()|@*" >
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates />
        </xsl:copy>
    </xsl:template>
<!-- todo combine with complexTypes -->
    <xsl:template match="xsd:element/xsd:annotation/xsd:documentation">
        <xsd:appinfo>
            <jaxb:class>
                <jaxb:javadoc>
                    <xsl:apply-templates/>
                </jaxb:javadoc>
            </jaxb:class>
        </xsd:appinfo>
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="xsd:complexType/xsd:annotation/xsd:documentation">
        <xsd:appinfo>
            <jaxb:class>
                <jaxb:javadoc>
                    <xsl:apply-templates/>
                </jaxb:javadoc>
            </jaxb:class>
        </xsd:appinfo>
        <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>
---
Stack trace:
BUILD FAILED
java.lang.InternalError
    at 
com.sun.tools.xjc.reader.xmlschema.AbstractXSFunctionImpl._assert(AbstractXSFunctionImpl.java:44) 
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.attributeDecl(FieldBuilder.java:99) 
    at 
com.sun.xml.xsom.impl.AttributeDeclImpl.apply(AttributeDeclImpl.java:55)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.build(ClassSelector.java:236) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector._bindToClass(ClassSelector.java:174) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.bindToType(ClassSelector.java:147) 
    at 
com.sun.tools.xjc.reader.xmlschema.TypeBuilder.attributeDecl(TypeBuilder.java:75) 
    at 
com.sun.xml.xsom.impl.AttributeDeclImpl.apply(AttributeDeclImpl.java:55)
    at 
com.sun.tools.xjc.reader.xmlschema.TypeBuilder.build(TypeBuilder.java:56)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.attributeUse(FieldBuilder.java:106) 
    at 
com.sun.xml.xsom.impl.AttributeUseImpl.apply(AttributeUseImpl.java:59)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.attributeContainer(FieldBuilder.java:93) 
    at 
com.sun.tools.xjc.reader.xmlschema.ct.ExtendedComplexTypeBuilder.build(ExtendedComplexTypeBuilder.java:110) 
    at 
com.sun.tools.xjc.reader.xmlschema.ct.ComplexTypeFieldBuilder.build(ComplexTypeFieldBuilder.java:55) 
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.complexType(FieldBuilder.java:225) 
    at 
com.sun.xml.xsom.impl.ComplexTypeImpl.apply(ComplexTypeImpl.java:162)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.build(ClassSelector.java:236) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector._bindToClass(ClassSelector.java:174) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.bindToType(ClassSelector.java:147) 
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.elementDecl(FieldBuilder.java:387) 
    at com.sun.xml.xsom.impl.ElementDecl.apply(ElementDecl.java:137)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.build(ClassSelector.java:236) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector._bindToClass(ClassSelector.java:174) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.bindToType(ClassSelector.java:147) 
    at 
com.sun.tools.xjc.reader.xmlschema.ParticleBinder.needSkip(ParticleBinder.java:76) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.particle(DefaultParticleBinder.java:403) 
    at 
com.sun.tools.xjc.reader.xmlschema.BGMBuilder.applyRecursively(BGMBuilder.java:473) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.modelGroup(DefaultParticleBinder.java:462) 
    at com.sun.xml.xsom.impl.ModelGroupImpl.apply(ModelGroupImpl.java:71)
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.build(DefaultParticleBinder.java:369) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.particle(DefaultParticleBinder.java:433) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.build(DefaultParticleBinder.java:372) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder.build(DefaultParticleBinder.java:71) 
    at 
com.sun.tools.xjc.reader.xmlschema.ct.FreshComplexTypeBuilder$1.particle(FreshComplexTypeBuilder.java:51) 
    at com.sun.xml.xsom.impl.ParticleImpl.apply(ParticleImpl.java:55)
    at 
com.sun.tools.xjc.reader.xmlschema.ct.FreshComplexTypeBuilder.build(FreshComplexTypeBuilder.java:35) 
    at 
com.sun.tools.xjc.reader.xmlschema.ct.ComplexTypeFieldBuilder.build(ComplexTypeFieldBuilder.java:55) 
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.complexType(FieldBuilder.java:225) 
    at 
com.sun.xml.xsom.impl.ComplexTypeImpl.apply(ComplexTypeImpl.java:162)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.build(ClassSelector.java:236) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector._bindToClass(ClassSelector.java:174) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.bindToType(ClassSelector.java:147) 
    at 
com.sun.tools.xjc.reader.xmlschema.TypeBuilder.elementDeclFlat(TypeBuilder.java:207) 
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.elementDecl(FieldBuilder.java:382) 
    at com.sun.xml.xsom.impl.ElementDecl.apply(ElementDecl.java:137)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.particle(DefaultParticleBinder.java:400) 
    at 
com.sun.tools.xjc.reader.xmlschema.BGMBuilder.applyRecursively(BGMBuilder.java:473) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.modelGroup(DefaultParticleBinder.java:462) 
    at com.sun.xml.xsom.impl.ModelGroupImpl.apply(ModelGroupImpl.java:71)
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.build(DefaultParticleBinder.java:369) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.particle(DefaultParticleBinder.java:433) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.build(DefaultParticleBinder.java:372) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder.build(DefaultParticleBinder.java:71) 
    at 
com.sun.tools.xjc.reader.xmlschema.ct.FreshComplexTypeBuilder$1.particle(FreshComplexTypeBuilder.java:51) 
    at com.sun.xml.xsom.impl.ParticleImpl.apply(ParticleImpl.java:55)
    at 
com.sun.tools.xjc.reader.xmlschema.ct.FreshComplexTypeBuilder.build(FreshComplexTypeBuilder.java:35) 
    at 
com.sun.tools.xjc.reader.xmlschema.ct.ComplexTypeFieldBuilder.build(ComplexTypeFieldBuilder.java:55) 
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.complexType(FieldBuilder.java:225) 
    at 
com.sun.xml.xsom.impl.ComplexTypeImpl.apply(ComplexTypeImpl.java:162)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.build(ClassSelector.java:236) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector._bindToClass(ClassSelector.java:174) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.bindToType(ClassSelector.java:147) 
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.elementDecl(FieldBuilder.java:387) 
    at com.sun.xml.xsom.impl.ElementDecl.apply(ElementDecl.java:137)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.build(ClassSelector.java:236) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector._bindToClass(ClassSelector.java:174) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.bindToType(ClassSelector.java:147) 
    at 
com.sun.tools.xjc.reader.xmlschema.ParticleBinder.needSkip(ParticleBinder.java:76) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.particle(DefaultParticleBinder.java:403) 
    at 
com.sun.tools.xjc.reader.xmlschema.BGMBuilder.applyRecursively(BGMBuilder.java:473) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.modelGroup(DefaultParticleBinder.java:462) 
    at com.sun.xml.xsom.impl.ModelGroupImpl.apply(ModelGroupImpl.java:71)
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.build(DefaultParticleBinder.java:369) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.particle(DefaultParticleBinder.java:433) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder$Builder.build(DefaultParticleBinder.java:372) 
    at 
com.sun.tools.xjc.reader.xmlschema.DefaultParticleBinder.build(DefaultParticleBinder.java:71) 
    at 
com.sun.tools.xjc.reader.xmlschema.ct.FreshComplexTypeBuilder$1.particle(FreshComplexTypeBuilder.java:51) 
    at com.sun.xml.xsom.impl.ParticleImpl.apply(ParticleImpl.java:55)
    at 
com.sun.tools.xjc.reader.xmlschema.ct.FreshComplexTypeBuilder.build(FreshComplexTypeBuilder.java:35) 
    at 
com.sun.tools.xjc.reader.xmlschema.ct.ComplexTypeFieldBuilder.build(ComplexTypeFieldBuilder.java:55) 
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.complexType(FieldBuilder.java:225) 
    at 
com.sun.xml.xsom.impl.ComplexTypeImpl.apply(ComplexTypeImpl.java:162)
    at 
com.sun.tools.xjc.reader.xmlschema.FieldBuilder.build(FieldBuilder.java:73)
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.build(ClassSelector.java:236) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector._bindToClass(ClassSelector.java:174) 
    at 
com.sun.tools.xjc.reader.xmlschema.cs.ClassSelector.bindToType(ClassSelector.java:147) 
    at 
com.sun.tools.xjc.reader.xmlschema.BGMBuilder.populate(BGMBuilder.java:242)
    at 
com.sun.tools.xjc.reader.xmlschema.BGMBuilder.buildContents(BGMBuilder.java:208) 
    at 
com.sun.tools.xjc.reader.xmlschema.BGMBuilder._build(BGMBuilder.java:109)
    at 
com.sun.tools.xjc.reader.xmlschema.BGMBuilder.build(BGMBuilder.java:78)
    at 
com.sun.tools.xjc.GrammarLoader.annotateXMLSchema(GrammarLoader.java:398)
    at com.sun.tools.xjc.GrammarLoader.load(GrammarLoader.java:125)
    at com.sun.tools.xjc.GrammarLoader.load(GrammarLoader.java:71)
    at com.sun.tools.xjc.XJCTask._doXJC(XJCTask.java:325)
    at com.sun.tools.xjc.XJCTask.doXJC(XJCTask.java:277)
    at com.sun.tools.xjc.XJCTask.execute(XJCTask.java:221)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:193)
    at org.apache.tools.ant.Task.perform(Task.java:341)
    at org.apache.tools.ant.Target.execute(Target.java:309)
    at org.apache.tools.ant.Target.performTasks(Target.java:336)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1339)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1255)
    at org.apache.tools.ant.Main.runBuild(Main.java:609)
    at org.apache.tools.ant.Main.start(Main.java:196)
    at org.apache.tools.ant.Main.main(Main.java:235)
> ------------------------------------------------------------------------
>
> Subject:
> RE: XSD annotation/documentation to Javadoc request
> From:
> "Robert Koberg" <rob_at_koberg.com>
> Date:
> Fri, 8 Aug 2003 12:17:28 -0700
> To:
> <users_at_jaxb.dev.java.net>
>
>
>Hi,
>
>Agood first attempt, but your XSL below should not even get parsed. You have
>not declared the jaxb namespace. I think you want something like (not
>tested):
>
>
><?xml version="1.0" encoding="UTF-8"?>
><xsl:stylesheet 
>  version="1.0" 
>  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
>  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
>  xmlns:jaxb="whatever">
>
>  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
>  
>  <xsl:template match="node()|@*">
>    <xsl:copy>
>      <xsl:copy-of select="@*"/>
>      <xsl:apply-templates/>
>    </xsl:copy>
>  </xsl:template>
>  
>  <xsl:template match="xsd:documentation">
>    <xsd:appinfo>
>      <jaxb:class>
>        <jaxb:javadoc>
>          <xsl:apply-templates/>
>        </jaxb:javadoc>
>      </jaxb:class>
>    </xsd:appinfo>
>    <xsl:copy>
>      <xsl:copy-of select="@*"/>
>      <xsl:apply-templates/>
>    </xsl:copy>
>  </xsl:template>
>  
></xsl:stylesheet>
>
>Best,
>-Rob
>  
>
-- 
David Walend
david_at_walend.net
http://www.walend.net
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
For additional commands, e-mail: users-help_at_jaxb.dev.java.net