<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <br>
    I want to implement additional morph functions in my own repository
    and deploy them AS packaged jar-files<br>
    <br>
    There is a nice procedure with flux commands which are loaded as
    plugins when they are part of the plugins directory in the
    metafacture-runner repository. The only thing to be done is to
    write  an additional flux-commands.properties file with the new
    commands.<br>
    <br>
    <br>
    <br>
    Metamorph functions in contrast have to be defined in the
    metamorph.xsd schema (    &lt;group name="function"&gt;) part of the
    metafacture-core repository.<br>
    An additional morph-functions.properties file isn't enough. I get
    errors like:<br>
    <br>
    Exception in thread "main"
    org.culturegraph.mf.exceptions.MetafactureException: class
    org.culturegraph.mf.morph.Metamorph could not be instantiated<br>
    &lt;snip....&gt;<br>
    Caused by: org.culturegraph.mf.exceptions.MorphDefException: Error
    during DOM creation: Error parsing xml: cvc-complex-type.2.4.a:
    Invalid content was found starting with element 'itemLink'. One of
    '{<a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:compose,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:regexp,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:replace,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:substring,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:lookup,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:whitelist,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:blacklist,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:isbn,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:equals,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:not-equals,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:case,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:timestamp,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:dateformat,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:htmlanchor,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:trim,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:split,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:normalize-utf8,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:occurrence,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:constant,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:count,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:urlencode,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:buffer,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:name,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:switch-name-value,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:unique,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:script,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:setreplace,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:java}' is expected.<br>
        at
org.culturegraph.mf.util.xml.DomLoader$TransformerErrorHandler.handle(DomLoader.java:215)<br>
        at
org.culturegraph.mf.util.xml.DomLoader$TransformerErrorHandler.error(DomLoader.java:205)<br>
        at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.postErrorToListener(TransformerImpl.java:811)<br>
        at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:754)<br>
        at
com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:359)<br>
        at
    org.culturegraph.mf.util.xml.DomLoader.parse(DomLoader.java:113)<br>
        at
org.culturegraph.mf.morph.AbstractMetamorphDomWalker.walk(AbstractMetamorphDomWalker.java:109)<br>
        at
org.culturegraph.mf.morph.AbstractMetamorphDomWalker.walk(AbstractMetamorphDomWalker.java:105)<br>
        at
    org.culturegraph.mf.morph.Metamorph.&lt;init&gt;(Metamorph.java:163)<br>
        at
    org.culturegraph.mf.morph.Metamorph.&lt;init&gt;(Metamorph.java:108)<br>
        at
    org.culturegraph.mf.morph.Metamorph.&lt;init&gt;(Metamorph.java:98)<br>
        at
    org.culturegraph.mf.morph.Metamorph.&lt;init&gt;(Metamorph.java:94)<br>
        ... 15 more<br>
    Caused by: javax.xml.transform.TransformerException: Error parsing
    xml: cvc-complex-type.2.4.a: Invalid content was found starting with
    element 'itemLink'. One of
    '{<a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:compose,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:regexp,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:replace,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:substring,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:lookup,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:whitelist,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:blacklist,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:isbn,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:equals,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:not-equals,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:case,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:timestamp,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:dateformat,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:htmlanchor,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:trim,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:split,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:normalize-utf8,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:occurrence,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:constant,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:count,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:urlencode,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:buffer,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:name,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:switch-name-value,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:unique,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:script,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:setreplace,
    <a class="moz-txt-link-rfc2396E" href="http://www.culturegraph.org/metamorph">"http://www.culturegraph.org/metamorph"</a>:java}' is expected.<br>
        ... 25 more<br>
    <br>
    <br>
    At the moment I can't see a possibility to extend the metamorph.xsd
    in my extensions without changing the original schema and compiling
    the metafacture-core by my own.<br>
    <br>
    Any suggestions?<br>
    <br>
    <br>
    Günter<br>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <pre class="moz-signature" cols="72">-- 
UNIVERSITÄT BASEL
Universitätsbibliothek
Günter Hipler
Projekt swissbib
Schönbeinstrasse 18-20
4056 Basel, Schweiz
Tel.: +41 61 267 31 12 
Fax: +41 61 267 31 03
E-Mail <a class="moz-txt-link-abbreviated" href="mailto:guenter.hipler@unibas.ch">guenter.hipler@unibas.ch</a>
URL <a class="moz-txt-link-abbreviated" href="http://www.swissbib.org">www.swissbib.org</a></pre>
  </body>
</html>