<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Communardo Techblog &#187; dtd</title>
	<atom:link href="http://www.communardo.de/home/techblog/tag/dtd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.communardo.de/home/techblog</link>
	<description></description>
	<lastBuildDate>Fri, 30 Jul 2010 12:18:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JAXB2-Bindings aus einer DTD mit Typmapping mit Maven2 generieren</title>
		<link>http://www.communardo.de/home/techblog/2007/08/24/jaxb2-bindings-aus-einer-dtd-mit-typmapping-mit-maven2-generieren/</link>
		<comments>http://www.communardo.de/home/techblog/2007/08/24/jaxb2-bindings-aus-einer-dtd-mit-typmapping-mit-maven2-generieren/#comments</comments>
		<pubDate>Fri, 24 Aug 2007 14:16:16 +0000</pubDate>
		<dc:creator>Jan Dittberner</dc:creator>
				<category><![CDATA[JEE]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[dtd]]></category>
		<category><![CDATA[jaxb]]></category>
		<category><![CDATA[maven2]]></category>
		<category><![CDATA[XML-Schema]]></category>

		<guid isPermaLink="false">http://www.communardo.de/techblog/2007/08/24/jaxb2-bindings-aus-einer-dtd-mit-typmapping-mit-maven2-generieren/</guid>
		<description><![CDATA[<img alt="jdi" src="http://www.gravatar.com/avatar.php/0d23d3c49d61a71b13dcadbe3605a453/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/jdi/" title="Artikel von Jan Dittberner">Jan Dittberner</a><p>Nach dem gestrigen <a href="http://www.communardo.de/techblog/2007/08/22/generierung-von-jaxb2-bindings-aus-einer-dtd-mit-maven2/">Erfolg</a> folgte heute eine Anforderung, die den Wechsel zu einem anderen Maven2-Plugin und einer neuen Mapping-Datei f&#252;hrte.</p>
<p>Die neue Anforderung war, dass Attribute aus der DTD auf andere Typen als String gemappt werden sollen. Da DTDs keine Typisierung wie XML-Schema kennen, muss dies mit einem Mapping-File geschehen. Das Maven2-Plugin aus dem gestrigen Artikel war leider mit dem Mapping der Attribute &#252;berfordert.</p>
<p>Jetzt wurde das <a href="https://maven-jaxb2-plugin.dev.java.net/">Maven2-JAXB-Plugin</a> von java.net verwendet, damit &#228;ndert sich die pom.xml folgenderma&#223;en:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;</pre>
<pre>&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"&gt;
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  &lt;groupId&gt;de.mms-dresden&lt;/groupId&gt;
  &lt;artifactId&gt;hsp-search-gen&lt;/artifactId&gt;
  &lt;name&gt;Hilfe- und Support-Portal generierter Code fuer die Suche&lt;/name&gt;
  &lt;version&gt;0.1-SNAPSHOT&lt;/version&gt;
  &lt;parent&gt;
    &lt;groupId&gt;de.mms-dresden&lt;/groupId&gt;
    &lt;artifactId&gt;hsp&lt;/artifactId&gt;
    &lt;version&gt;0.1-SNAPSHOT&lt;/version&gt;
  &lt;/parent&gt;
  &lt;description&gt;Generierter Code fuer die Suche im Hilfeportal&lt;/description&gt;
  &lt;build&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.jvnet.jaxb2.maven2&lt;/groupId&gt;
        &lt;artifactId&gt;maven-jaxb2-plugin&lt;/artifactId&gt;
        &lt;executions&gt;
          &lt;execution&gt;
            &lt;goals&gt;
              &lt;goal&gt;generate&lt;/goal&gt;
            &lt;/goals&gt;
            &lt;configuration&gt;
              &lt;generateDirectory&gt;${project.build.directory}/generated-sources/jaxb&lt;/generateDirectory&gt;
              &lt;extension&gt;true&lt;/extension&gt;
              &lt;schemaLanguage&gt;DTD&lt;/schemaLanguage&gt;
              &lt;schemaIncludes&gt;
                &lt;schemaInclude&gt;*.dtd&lt;/schemaInclude&gt;
              &lt;/schemaIncludes&gt;
              &lt;bindingIncludes&gt;
                &lt;bindingInclude&gt;*.jaxb&lt;/bindingInclude&gt;
              &lt;/bindingIncludes&gt;
              &lt;verbose&gt;true&lt;/verbose&gt;
              &lt;args&gt;
                &lt;arg&gt;-Xinject-listener-code&lt;/arg&gt;
              &lt;/args&gt;
            &lt;/configuration&gt;
          &lt;/execution&gt;
        &lt;/executions&gt;
        &lt;dependencies&gt;
          &lt;dependency&gt;
            &lt;groupId&gt;org.jvnet.jaxb2-commons&lt;/groupId&gt;
            &lt;artifactId&gt;property-listener-injector&lt;/artifactId&gt;
            &lt;version&gt;1.0&lt;/version&gt;
          &lt;/dependency&gt;
        &lt;/dependencies&gt;
      &lt;/plugin&gt;
    &lt;/plugins&gt;
  &lt;/build&gt;

  &lt;repositories&gt;
    &lt;repository&gt;
      &lt;id&gt;maven2-repository.dev.java.net&lt;/id&gt;
      &lt;url&gt;http://download.java.net/maven/2/&lt;/url&gt;
    &lt;/repository&gt;
  &lt;/repositories&gt;

  &lt;pluginRepositories&gt;
    &lt;pluginRepository&gt;
      &lt;id&gt;maven2-repository.dev.java.net&lt;/id&gt;
      &lt;url&gt;http://download.java.net/maven/2/&lt;/url&gt;
    &lt;/pluginRepository&gt;
  &lt;/pluginRepositories&gt;

  &lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;javax.xml.bind&lt;/groupId&gt;
      &lt;artifactId&gt;jaxb-api&lt;/artifactId&gt;
    &lt;/dependency&gt;
  &lt;/dependencies&gt;
&lt;/project&gt;</pre>
<p>Bei der Angabe der Repository-Pfade muss man aufpassen, weil die Angaben auf der <a href="https://maven-jaxb2-plugin.dev.java.net/docs/guide.html">Projektseite</a> des Plugins inzwischen nicht mehr stimmen. Stattdessen mussten die Pfade aus der <a href="https://maven2-repository.dev.java.net/">Repositoryseite</a> von java.net verwendet werden.</p>
<p>Die Dependency-Versionen sind jetzt im Parent-POM definiert, entsprechen aber den Versionen aus dem gestrigen Beitrag.</p>
<p>Das Mapping mappt jetzt das Attribut HITCOUNT des Elements NAVIGATIONENTRY auf den Java-Typ int (genauer gesagt den Wrapper Integer um auch null-Werte darstellen zu k&#246;nnen) und sieht jetzt folgenderma&#223;en aus:</p>
<pre>&lt;?xml version="1.0" ?&gt;
&lt;!--
	The syntax of the binding file for DTD is defined in the JAXB EA.
	See vendorSchemaLangs.html for details.
--&gt;
&lt;xml-java-binding-schema xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
  xmlns:ci="http://jaxb.dev.java.net/plugin/listener-injector"&gt;

  &lt;!-- specify the package name for the generated code --&gt;
  &lt;options package="de.mms_dresden.mip.hsp.base.services.search" /&gt;
  &lt;xjc:serializable/&gt;

  &lt;element name="NAVIGATIONENTRY" type="class"&gt;
    &lt;attribute name="HITCOUNT" convert="int" /&gt;
  &lt;/element&gt;
&lt;/xml-java-binding-schema&gt;</pre>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2007/08/24/jaxb2-bindings-aus-einer-dtd-mit-typmapping-mit-maven2-generieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generierung von JAXB2-Bindings aus einer DTD mit Maven2</title>
		<link>http://www.communardo.de/home/techblog/2007/08/22/generierung-von-jaxb2-bindings-aus-einer-dtd-mit-maven2/</link>
		<comments>http://www.communardo.de/home/techblog/2007/08/22/generierung-von-jaxb2-bindings-aus-einer-dtd-mit-maven2/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 14:34:13 +0000</pubDate>
		<dc:creator>Jan Dittberner</dc:creator>
				<category><![CDATA[JEE]]></category>
		<category><![CDATA[Softwareentwicklung]]></category>
		<category><![CDATA[dtd]]></category>
		<category><![CDATA[jaxb]]></category>
		<category><![CDATA[maven2]]></category>

		<guid isPermaLink="false">http://www.communardo.de/techblog/2007/08/22/generierung-von-jaxb2-bindings-aus-einer-dtd-mit-maven2/</guid>
		<description><![CDATA[<img alt="jdi" src="http://www.gravatar.com/avatar.php/0d23d3c49d61a71b13dcadbe3605a453/?s=76" class="com-blog-icon"/><a href="http://www.communardo.de/home/techblog/author/jdi/" title="Artikel von Jan Dittberner">Jan Dittberner</a><p>Heute mussten aus einer existierenden DTD ein paar JAXB2-Binding-Klassen generiert werden. Nach einigem probieren ist dies mit folgender pom.xml und einem passenden Binding-File gelungen.</p>
<p>Hier die pom.xml:</p>
<p><code> </code></p>
<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
&gt;
  &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  &lt;groupId&gt;de.mms-dresden&lt;/groupId&gt;
  &lt;artifactId&gt;hsp-search-gen&lt;/artifactId&gt;
  &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
  &lt;description&gt;Generierter Code fuer die Suche im Hilfeportal&lt;/description&gt;
  &lt;build&gt;
    &lt;plugins&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
        &lt;artifactId&gt;jaxb2-maven-plugin&lt;/artifactId&gt;
        &lt;executions&gt;
          &lt;execution&gt;
            &lt;goals&gt;
              &lt;goal&gt;xjc&lt;/goal&gt;
            &lt;/goals&gt;
          &lt;/execution&gt;
        &lt;/executions&gt;
        &lt;configuration&gt;
          &lt;schemaDirectory&gt;${basedir}/src/main/dtd&lt;/schemaDirectory&gt;
          &lt;dtd&gt;true&lt;/dtd&gt;
          &lt;xmlschema&gt;false&lt;/xmlschema&gt;
          &lt;schemaFiles&gt;FastSearchResult.dtd&lt;/schemaFiles&gt;
          &lt;strict&gt;false&lt;/strict&gt;
          &lt;verbose&gt;true&lt;/verbose&gt;
          &lt;explicitAnnotation&gt;true&lt;/explicitAnnotation&gt;
          &lt;packageName&gt;de.mms_dresden.mip.hsp.base.services.search&lt;/packageName&gt;
        &lt;/configuration&gt;
      &lt;/plugin&gt;
      &lt;plugin&gt;
        &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
        &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
        &lt;configuration&gt;
          &lt;source&gt;1.5&lt;/source&gt;
          &lt;target&gt;1.5&lt;/target&gt;
        &lt;/configuration&gt;
      &lt;/plugin&gt;
    &lt;/plugins&gt;
  &lt;/build&gt;
  &lt;dependencies&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;javax.xml.bind&lt;/groupId&gt;
      &lt;artifactId&gt;jaxb-api&lt;/artifactId&gt;
      &lt;version&gt;2.0&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;com.sun.xml.bind&lt;/groupId&gt;
      &lt;artifactId&gt;jaxb-impl&lt;/artifactId&gt;
      &lt;version&gt;2.0.3&lt;/version&gt;
    &lt;/dependency&gt;
    &lt;dependency&gt;
      &lt;groupId&gt;com.sun.xml.bind&lt;/groupId&gt;
      &lt;artifactId&gt;jaxb-xjc&lt;/artifactId&gt;
      &lt;version&gt;2.0.3&lt;/version&gt;
    &lt;/dependency&gt;
  &lt;/dependencies&gt;
&lt;/project&gt;</pre>
<p>und hier noch das passende File FastSearchResult.xjb:</p>
<p><code> </code></p>
<pre>
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;xml-java-binding-schema&gt;
&lt;options package="de.mms_dresden.mip.hsp.base.services.search" /&gt;
&lt;element name="SEGMENTS" type="class" root="true" /&gt;
&lt;/xml-java-binding-schema&gt;</pre>
<p>Die generierten Klassen landen damit in target/generated-sources/jaxb</p>
]]></description>
		<wfw:commentRss>http://www.communardo.de/home/techblog/2007/08/22/generierung-von-jaxb2-bindings-aus-einer-dtd-mit-maven2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
