Oliver,
I would suggest you speak to an attorney on this or do more reading of
copyright law. Your gut is not far off, but you have some assumptions
that are fundamentally misguided.
Interfaces are copyrightable just as much as an implementation is. For
example, UML is copyrighted. Now UML is free because the copyright
holders gave everyone a license to use it pretty openly [1], just as
Hibernate is free because of the minimally restrictive license to use it
[2].
I would also suggest going over the "fair use" concept for copyrights
[3]. For example, your simple <composite-id> example would be allowed
as fair use copy because it is such a small amount of the whole
definition and isn't very unique. However, if you used the whole HBM
XML spec and just created a different implementation, that would have to
be within Hibernate's license just as much as if you reimplemented
org.hibernate.SessionFactory.
Anyway, IANAL so take all of this with a grain of salt, but i felt
compelled to give you some words of caution and direction for further
reading about this.
[1] see page 2 of the UML specifications
http://www.omg.org/docs/formal/07-11-04.pdf
[2]
http://www.hibernate.org/356.html
[3]
http://en.wikipedia.org/wiki/Fair_use
--
Serge Knystautas
Lokitech >> software . strategy . design >>
http://www.lokitech.com
p. 301.656.5501
e. sergek(a)lokitech.com
Oliver Plohmann wrote:
Well, let's say you want to express that some primary key is a
composite
of several keys. You will necessarily end up with something like this:
<composite-id>
<key-property name="fieldA"/>
<key-property name="fieldB"/>
</composite-id>
This is partially imposed by the way XML works and to some point it is
simply common sense to create a solution in that way. And it is some
peace of valid hbm xml. Is it thefore protected by the hibernate
license, because it is part of the dtd? I believe not since this only
conveys that a composite consists of several parts. That's why I was
mentioning in my previous mail that there is no copyright on pure
definitions or interfaces. On the other hand, there are many things in
hbm xml that are very special in hibernate and not at all obvious or
common sense. I would guess that these parts would be considered worthy
of protection.
Anyway, it is starting to get annoying ... ;-). My conclusion I draw out
of this is that it would make sense to define some basic DSL using XML
to describe relationships between entities. This DSL would be free in
the same way that UML is free.
So long, Oliver