
Hi John, Xerces used a one schema per namespace model, that means whenever a namespace is imported the referred schema is the master schema for that namespace. At some moment it was introduced a feature in Xerces to allows to specify more schema documents for the same namespace - this is available through oXygen options in Options->Preferences -- XML -- XML Parser -- http://apache.org/xml/features/honour-all-schemaLocations. Now, the problems seems to be related with this feature being enabled so please make sure you disable that from oXygen options. What can cause problems is that the same schema document can be referred with different systemIds and thus the parser can consider the same schema document as multiple documents and from that point one can get unexpected errors. Best Regards, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com John.Hockaday@ga.gov.au wrote:
Hi George,
Thanks for providing me with a complete solution in the ZIP file. However, I am still having problems.
I unzipped the ZIP file that you provided into a directory. I then opened a new Oxygen project. I opened the Options => Preferences => XML Catalog and replaced mine with the gml3.2.0Catalog.xml file included in your ZIP. I then saved preferences, shut down Oxygen and opened it up again. I then opened up the GmlDictionaryMetadataLocal.xml file in your ZIP. I tried to validate this but ended up with 18099 errors.
I have saved the errors. You can get them from http://asdd.ga.gov.au/asdd/work/GeorgesGmlDictMetLocalErrors.
I checked the first of these errors and saw that they are referring to the GML etc. that was part of your ZIP.
I get the same results using the GmlDictionaryMetadata.xml file that you provided with the same gml3.2.0Catalog.xml file.
I then imported the gml3.2.0 folder to the project and validated the selection. Oxygen seemed to go through all the different XSDs and reported - via a java window - "validation successful".
I am using Oxygen XML editor <oXygen/> XML Editor 10.0, build 2008102212.
I don't know what file my Options => Preferences is stored in. Would that content be helpful? If so, tell me the file name and I will make it available on the above web site.
Thanks.
John
-----Original Message----- From: George Cristian Bina [mailto:george@oxygenxml.com] Sent: Friday, 13 February 2009 7:51 PM To: Hockaday John Cc: oxygen-user@oxygenxml.com Subject: Re: [oXygen-user] How do I switch off validation of XSDs that are called by an XML document instance [SEC=UNCLASSIFIED]
Hi John,
I created a catalog file and placed it in the same folder that contains the gml3.2.0 folder. The catalog refers to the schemas with relative locations - and this is how I would recommend, instead of putting absolute file URLs. In this way you can easily distribute the schemas and the catalog to other machines or other users. The catalog content is below:
gml3.2.0Catalog.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE catalog PUBLIC "-//OASIS//DTD XML Catalogs V1.1//EN" "http://www.oasis-open.org/committees/entity/release/1.1/catalog.dtd"> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <!-- Schema for EPSG namespace --> <system systemId="urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset" uri="gml3.2.0/EPSG.xsd"/> <system systemId="http://www.isotc211.org/2005/gml.3.2.1/gml.xsd" uri="gml3.2.0/gml/gml.xsd"/>
<system
systemId="http://www.isotc211.org/2005/gml.3.2.1/xlink/xlinks.xsd" uri="gml3.2.0/xlink/xlinks.xsd"/> </catalog>
The above catalog needs to be set in Options->Preferences -- XML / XML Catalog in the Catalogs list. In the same folder I have two files, one uses relative locations and one uses absolute locations. Both are reported valid with oXygen 10.0 and with the 10.1 preview.
The files contain the following schema locations:
xsi:schemaLocation="http://www.opengis.net/gml gml3.2.0/gml/gml.xsd http://www.w3.org/1999/xlink gml3.2.0/xlink/xlinks.xsd urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset gml3.2.0/EPSG.xsd"
and
xsi:schemaLocation="http://www.opengis.net/gml http://www.isotc211.org/2005/gml.3.2.1/gml.xsd http://www.w3.org/1999/xlink http://www.isotc211.org/2005/gml.3.2.1/xlink/xlinks.xsd urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset"
I put all these in an archive that you can download from http://www.oxygenxml.com/update/john.zip Note that this URL is not permanent, the archive will be deleted after a week or so.
If you still get errors please let us know what errors exactly do you get and what version and build number of oXygen you are using (you should be able to find these in the Help->About dialog).
Best Regards, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com
Hi George,
Thanks for the reply. I have made comments to your's below:
-----Original Message----- From: George Cristian Bina [mailto:george@oxygenxml.com] Sent: Thursday, 12 February 2009 6:52 PM To: Hockaday John Cc: oxygen-user@oxygenxml.com Subject: Re: [oXygen-user] How do I switch off validation of XSDs that are called by an XML document instance [SEC=UNCLASSIFIED]
Hi John,
Putting the local schemas in the schema location attribute, like below:
xsi:schemaLocation="http://www.opengis.net/gml gml3.2.0/gml/gml.xsd http://www.w3.org/1999/xlink gml3.2.0/xlink/xlinks.xsd urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset gml3.2.0/EPSG.xsd">
I get the file reported valid without any errors.
I was trying to avoid using relative path names because
John.Hockaday@ga.gov.au wrote: this means that my XML document instance will have to be in the "EPSGschemas" directory. Not everyone will have this structure and hence I used full URLs and OASIS Catalogue XML files to point to the local copies of the XSDs. (See below.)
Now, a couple of observations:
- your archive contains gml 3.2.0 while your instance refers to gml 3.2.1, see the initial schemaLocation:
xsi:schemaLocation="http://www.opengis.net/gml http://www.isotc211.org/2005/gml.3.2.1/gml.xsd http://www.w3.org/1999/xlink http://www.isotc211.org/2005/gml.3.2.1/xlink/xlinks.xsd urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset">
Yes that is right. However, my OASIS Catalogue XML file has
the following content.
<!-- Schema for EPSG namespace -->
<system systemId="urn:x-ogp:spec:schema-xsd:EPSG:0.1:dataset" uri="file:///O:/downloads/EPSGschemas/gml3.2.0/EPSG.xsd"/> <system systemId="http://www.isotc211.org/2005/gml.3.2.1/gml.xsd"
uri="file:///O:/downloads/EPSGschemas/gml3.2.0/gml/gml.xsd"/>
<system
I thought that Oxygen would always use the local files (file:///O:/downloads/EPSGschemas/gml3.2.0/) whenever it saw
Today I replaced the schemaLocation values with the three "uri" file values as shown in the content of the catalogue file above. IE file:///O:/downloads/EPSGschemas/.... The validation still gave me the same errors. I have now temporarily moved the huge XML file into the EPSGschemas directory and changed the schemaLocation to what you have mentioned above. IE gml3.2.0/... The validation still gives me the same errors. Shouldn't this work?
- the remote schemas at the locations in your original file do not exist, or at least I cannot access them, I get a 404 not found HTTP error.
Yes. That is correct. The schemas have not yet been made
- you do not have a location specified for the last schema, so I assume you also have a catalog that maps that to a location?
Yes as mentioned above.
I don't know why you can validate the file and I can't. It seems to me that I am using the OASIS catalogue file correctly but there must be some setting that gives me errors and you none. Could that be right? Thanks.
John
Best Regards, George -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com
Hi Sorin,
Thanks for your prompt reply.
A long time ago I asked how to validate a whole set of XSDs. The response indicated that I should: open a project, import folders (containing the XSDs) into the project, right click on the folder (holding the XSDs) and validate selection. This is what I did with the XSDs that I am using to validate the huge XML document instance. The validation errors from above only relate to readme files in the
I have tarred and gzipped the XSDs that I am dealing with. You can download them from: http://asdd.ga.gov.au/asdd/work/epsgSchemas.tar.gz I then validate the huge XML document instance that is supposed to be valid according to the above mentioned XSDs. When I do this there are thousands of errors related to the XSDs mentioned above and within the document. The huge file that I am trying to validate is available at http://asdd.ga.gov.au/asdd/work/GmlDictionaryMetadata.xml Thanks.
John
-----Original Message----- From: oxygen-user-bounces@oxygenxml.com [mailto:oxygen-user-bounces@oxygenxml.com] On Behalf Of Sorin Ristache Sent: Wednesday, 11 February 2009 7:03 PM To: oxygen-user@oxygenxml.com Subject: Re: [oXygen-user] How do I switch off validation of XSDs that are called by an XML document instance [SEC=UNCLASSIFIED]
Hello,
The XML Schema is validated implicitly when an XML file is validated against that schema. You cannot disable that with a
John.Hockaday@ga.gov.au wrote: directories. Therefore, I assume that the XSDs are valid. I even removed the readme files and the validation still works. preference. If the
XML Schema is valid then the validation errors are in
systemId="http://www.isotc211.org/2005/gml.3.2.1/xlink/xlinks.xsd" uri="file:///O:/downloads/EPSGschemas/gml3.2.0/xlink/xlinks.xsd"/> the schemaLocation value. Is this true or have I misinterpreted how Oxygen uses OASIS Catalogue XML files? public. I have been given a ZIP file containing the XSDs. I unzipped them on my local system. This was part of what I made available to you via the URL below. Because there were no official web site holding this information I used a bogus full URL that I know doesn't exist. I expected Oxygen to get the local XSDs using the OASIS Catalogue XML file as mentioned above. the XML file.
Please send some sample files to see if the schema or the XML file is not valid.
Regards, Sorin
John.Hockaday@ga.gov.au wrote: > Hi, > > I have an XML document instance and when I validate it against and XSD, Oxygen 10.0 validates the XSD? I have been told by so called experts that the XSDs are valid but I keep on getting the errors. What preferences do I set to validate the XML document instance and not the relevant XSDs? > Thanks. _______________________________________________ oXygen-user mailing list oXygen-user@oxygenxml.com http://www.oxygenxml.com/mailman/listinfo/oxygen-user
_______________________________________________ oXygen-user mailing list oXygen-user@oxygenxml.com http://www.oxygenxml.com/mailman/listinfo/oxygen-user