Java loader

I’m trying to use external entities
but I seem to always get an error when every using the doctype and entity declarations. (Load Error INOXRE8814: Element/attribute name ). I have attached a sample xml document as well.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE am_object SYSTEM "http://www.covax.at/content/dtd/am_object.dtd" [

%isopub.ent;
]>
<am_object>

…loading:
API Version = 1.1
Tamino Java Loader has started.
Load Error INOXRE8814: Element/attribute name not found
0 elements uploaded from …

…using:
java -classpath “.\lib\JavaLoader.jar;.\lib\xerces.jar” com.softwareag.tamino.db.tools.loader.TaminoLoad -f D:\amico.xml -u http://www.test.org/tamino/keop/Amico-2in1
thanks for any help
bob
amico.xml (6.57 KB)

Hi Bob,

As I recall, the Tamino loaders do not resolve external entities. To load such documents you first need to parse your document with an XML parser which can resolve external entities, then serialize the result ready for loading into Tamino.

I think Xerces supports this feature.

Kind regards,

Simon

I know this is a bit beside the point, but …
I tried to have a look at your document, and the
only entity there was the & in the “F&A Museum”. But this is absolutely legal in Tamino.
I just tested this, by simply removing the external entity reference from the header. Then i generated a DTD using XML-spy - generated and defined a schema and loaded and displayed the document successfully.
So my question is; are all your entities as simple as this ?
Finn

Strange in my source file, the & is there, something with the posting (or after) maybe caused some “resolution”…strange…
my source says:
<CLS__classification_scheme>F&A Museum</CLS__classification_scheme>

This file (this particular database) have only the commonly known XML entities. My other file has numerous entities and a more complicated schema. I was simply trying to reduce the complexity and see what was going on… so this amico file is simple and I added the entity declaration to test the java loader…

Thanks for testing!

This is funny… in the email that I just posted and in the amico file, the “amp” is resolved to plain “&” … I don’t dare say “& amp ;” together as one word again :slight_smile:

I’m having the same symptoms,

One of the responses was that external entities are not permitted. Is this true? I’m reading that “external entities are resolved” on the help page for JavaLoader

Hi jleon,

actually there is at least one restriction due to the fact that Xerces is used internally by the JavaLoader:

(See Xerces FAQ

Greetinx
Juergen

Yes, fact is that quite a few XML processors don’t support external entities. Tamino itself currently doesn’t either, so you need to copy the external definitions into the document.
Unfortunately, this doesn’t seem to be documented in an obvious place.

Hi,

there is an inojload option with rather cryptic explanation:

-d : uses a virtual document which treats the named file as
an external entity

Could that be of any help? Can anyone explain further?

Best regards, Andreas

Hi Andreas,

of course -d is a JavaLoader option, but it is not an option that can solve this problem.
(The only one that could have an effect at all is -E.)

In case you have a file that contains a lot of XML documents that are not enclosed by a root document, you can use -d to wrap them by an internal root element.

Example (would be rejected by the parser):
Document1
Document2
Document3
Document4

JavaLoader does this by creating a virtual document with an entity that points to the original file (in your local file system).
This entity is being referenced roughly like this:


&originalfile;


and look like this:

Document1
Document2
Document3
Document4


Now the XML parser will not complain that the file does not contain wellformed XML. The Javaoader can now grab the documents and process them.

GreetinX
J