[
Lists Home |
Date Index |
Thread Index
]
Hello,
I am using a SYSTEM DTD which should be found locally to the XML document.
In otherwords, if the xml document is in c:\myxmldoc then the DTD should
also be found there.
I have a copy of the DTD on the server where order entry will be processed.
My VB Application will POST a new order entry XML doc to the server via the
XMLHTTP object of MSXML2. On the server, and local to the ASP page handling
the request, is the DTD used to validate the XML document. I am getting the
error:
Problem loading xml - -2146697210 -- The system cannot locate the object
specified.
Error processing resource 'order_entry.dtd'
My DTD tag in the XML document reads:
<!DOCTYPE ORDER SYSTEM "order_entry.dtd">
Apparently, the XML document when POSTed to the ASP page from VB loses
reference (doesn't understand) where the DTD should be found. I'd like it
to be found local to the ASP script. Am I making sense? The URL I am
posting to requires NT Authentication, so I wasn't sure if specifying a
PUBLIC DTD would work here.
How can I rewrite my external DTD decleration?
Here is the ASP code which loads the XML document:
set xml = createobject("MSXML2.DomDocument")
with xml
.validateonparse = true
.async = false
'.load Server.MapPath("firsttry.xml") 'load sample - local copy
.load(Request)
end with
Notice the commented out line that opens the XML document "firsttry.xml"?
Well, this works great when testing the ASP page - Vs. the true test of
excepting a POSTed XML document.
Thanks for the help!
Karl
PS - Is this a DTD weakness? Should I be using schemas to validate? And, I
don't like placing the DTD within the XML document as the standards may
change, old XML may exist on client machines (with old DTD specifications),
etc...
|