You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by David Jencks <da...@coredevelopers.net> on 2004/01/04 23:09:51 UTC
Schema and dtd management
After working with Kristian Koehler on improvements to the
LocalEntityResolver I'd like to discuss reorganizing the schemas and
dtds.
Kristian's additions let us use the standard xml catalog format to
identify locations looked up by publicId or systemId during xml
processing. I think everything possible should be listed in one or
more catalogs and no reliance placed on a local repository or on the
classpath.
Before discussing reorganization, I have a question that I hope an xml
expert can answer. The documentation I have been able to find for
EntityResolver seems to indicate that it is intended only to look up
entities by publicId or systemId, and mentions nothing about resolving
namespace locations. However, xerces appears to resolve schemas
mentioned in xsi:schemaLocation by looking up publicId=null,
systemId=URI given as schemaLocation. I can't find any information as
to whether this is covered by any standards. Does anyone know anything
more about this?
-----------
Reorganization proposal:
1. move LocalEntityResolver to kernel module. IMO it should be used
for validating/loading mbean configurations. This will presumably also
require setting up its mbean in the boot.mlet.
2. move all the grammars (schemas and dtds) to a separate module,
either in specs or modules. This includes the schemas included in
modules/core/schema and several dtds (and schemas?) scattered through
the spec modules. Obviously this depends partly on clearing up whether
we can have the sun grammars in our cvs at all.
2.a. We could put all the grammars in one module, both the sun ones
and the geronimo ones. (one cataog)
or
2.b We could have the sun grammars in a spec module and the geronimo
ones in a modules module. (two catalogs)
There is also a question about whether the grammars should be in a jar
file as at present or unpacked in a directory. A jar file makes
distribution slightly easier, whereas an unpacked directory makes it
easier for users to actually find and look at the contents. There is
some indication in the catalog code that it may not relate too well
with jar files: I haven't gotten the catalog to work with jar files yet.
Comments appreciated,
thanks
david jencks
Re: Schema and dtd management
Posted by Jeremy Boynes <je...@coredevelopers.net>.
David Jencks wrote:
> It looks to me as if the service deployer is currently in the kernel
> module. I don't see that as a particularly Good Thing, but I'm not sure
> where to move it to. Is this changed in the new deployment stuff you
> (Jeremy) are working on?
>
Yes.
I have most of the code but need Dain's input on how to map existing
-service.xml files to the new GBeans (specifically constructors). In the
mean time I am putting together doco on the new stuff (honest :-P ).
--
Jeremy
Re: Schema and dtd management
Posted by David Jencks <da...@coredevelopers.net>.
On Monday, January 5, 2004, at 10:18 AM, Jeremy Boynes wrote:
> Aaron Mulder wrote:
>
>> On Sun, 4 Jan 2004, Jeremy Boynes wrote:
>
>>> -1 as the kernel should not require the XML stuff to run
>>> The service deployer may rely on this, but that is not a kernel
>>> component
>> Doesn't the kernel read XML configuration files
>> (boot-service.xml)? If so, shouldn't it be able to use the entity
>> resolver to validate those?
>
> It shouldn't - only the service deployer should need to read those
> files.
It looks to me as if the service deployer is currently in the kernel
module. I don't see that as a particularly Good Thing, but I'm not
sure where to move it to. Is this changed in the new deployment stuff
you (Jeremy) are working on?
david
Re: Schema and dtd management
Posted by Jeremy Boynes <je...@coredevelopers.net>.
Aaron Mulder wrote:
> On Sun, 4 Jan 2004, Jeremy Boynes wrote:
>
>>-1 as the kernel should not require the XML stuff to run
>> The service deployer may rely on this, but that is not a kernel
>> component
>
>
> Doesn't the kernel read XML configuration files
> (boot-service.xml)? If so, shouldn't it be able to use the entity
> resolver to validate those?
>
It shouldn't - only the service deployer should need to read those files.
--
Jeremy
Re: Schema and dtd management
Posted by Aaron Mulder <am...@alumni.princeton.edu>.
On Sun, 4 Jan 2004, Jeremy Boynes wrote:
> > Reorganization proposal:
> >
> > 1. move LocalEntityResolver to kernel module. IMO it should be used for
> > validating/loading mbean configurations. This will presumably also
> > require setting up its mbean in the boot.mlet.
> >
>
> -1 as the kernel should not require the XML stuff to run
> The service deployer may rely on this, but that is not a kernel
> component
Doesn't the kernel read XML configuration files
(boot-service.xml)? If so, shouldn't it be able to use the entity
resolver to validate those?
> > 2.a. We could put all the grammars in one module, both the sun ones and
> > the geronimo ones. (one cataog)
> > or
> > 2.b We could have the sun grammars in a spec module and the geronimo
> > ones in a modules module. (two catalogs)
>
> I prefer this option
I prefer to keep them separate, so long as we agree to keep the
Geronimo content out of the Sun namespace. If it's all going in the same
namespace, then I'd like to put the files in one place. My recollection
of the schema problems we had before is that Geronimo entities can't
"extend" Sun entities unless they're in the same namespace, but I still
prefer to keep the namespaces separate.
Aaron
Re: Schema and dtd management
Posted by Jeremy Boynes <je...@coredevelopers.net>.
David Jencks wrote:
<snip/>
> Reorganization proposal:
>
> 1. move LocalEntityResolver to kernel module. IMO it should be used for
> validating/loading mbean configurations. This will presumably also
> require setting up its mbean in the boot.mlet.
>
-1 as the kernel should not require the XML stuff to run
The service deployer may rely on this, but that is not a kernel
component
> 2. move all the grammars (schemas and dtds) to a separate module, either
> in specs or modules. This includes the schemas included in
> modules/core/schema and several dtds (and schemas?) scattered through
> the spec modules. Obviously this depends partly on clearing up whether
> we can have the sun grammars in our cvs at all.
>
> 2.a. We could put all the grammars in one module, both the sun ones and
> the geronimo ones. (one cataog)
> or
> 2.b We could have the sun grammars in a spec module and the geronimo
> ones in a modules module. (two catalogs)
I prefer this option
--
Jeremy
Re: Schema and dtd management
Posted by Kristian Köhler <Kr...@gmx.de>.
David Jencks wrote:
> -----------
> Reorganization proposal:
>
> 2.b We could have the sun grammars in a spec module and the geronimo
> ones in a modules module. (two catalogs)
Two modules in CVS but IMO there should only be one directory in the
distribution. If the grammars are scattered around the file system some
tools without a good entity resolving will have problems to handle all
the grammars (like my XMLSpy ;-)) and it's hard to create a new valid
xml file. The user will always have to copy the files to one loaction.
> There is also a question about whether the grammars should be in a jar
> file as at present or unpacked in a directory. A jar file makes
> distribution slightly easier, whereas an unpacked directory makes it
> easier for users to actually find and look at the contents. There is
> some indication in the catalog code that it may not relate too well with
> jar files: I haven't gotten the catalog to work with jar files yet.
>
> Comments appreciated,
I think the grammars should be unpacked in a directory (or two
(SUN/Geronimo) - I prefer one directory). IMO that's more transparent
for users. They can easily see which grammars Geronimo use. With this
approach it's also possible to include a graphical representation of the
grammars a la JBoss. With my original patch I included such a local
repository (etc/xml). I think this would be a good place for that files. ;-)
Kristian