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