[ASP / XML] XML tegen externe Schema valideren

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • K0bo
  • Registratie: April 2000
  • Laatst online: 17-01 21:34
[Edit: De boel duidelijker gemaakt ]

Gebruikt:
IIS
MSSQL
MSXML2.DOMDocument.4.0

Globaal:
Ik heb een script geschreven die lokaal opgeslagen XML-bestanden inleest en deze vervolgens importeert naar een MSSQL-server. Voordat de XML-bestanden ingevoerd worden, worden deze gevalideerd tegen een Schema (.xsd) op structuur en inhoud.

XML tegen een lokaal opgeslagen Schema valideren lukt gewoon.
code:
1
  xsi:schemaLocation="http://xxxxxx.nl/Schema/v1 file:\\c:\inetpub\wwwroot\development\xxxxxx\schema\schema.xsd"


Probleem:
Het probleem ligt in het valideren van het XML-bestanden tegen een externe Schema.
Het .xsd bestand staat op http://xxxxxx.nl/Schema/v1/schema.xsd gehost...

Maar zodra ik de schemaLocation verander naar het volgende dan werkt het niet
code:
1
  xsi:schemaLocation="http://xxxxxx.nl/Schema/v1 schema.xsd"


Dit werkt ook niet:
code:
1
  xsi:schemaLocation="http://xxxxxx.nl/Schema/v1 http://xxxxxx.nl/Schema/v1/schema.xsd"


Bij het geval waar ik een lokaal Schema verwees, kreeg ik netjes een foutmelding van de XML parser wanneer ik incorrecte data invulde in de XML.
Wanneer expres een fout maakte in het pad naar de lokale Schema, kreeg ik geen melding van de XML parser. Hetzelfde is het geval bij "http://xxxxxx.nl/Schema/v1 schema.xsd" en "http://xxxxxx.nl/Schema/v1 http://xxxxxx.nl/Schema/v1/schema.xsd"

Het lijkt erop dat ik geen feedback krijg wanneer ik een fout maak bij het opgeven van de Schema URI.

Ik heb me rot zitten zoeken op Google en ik ben niets wijzer geworden.

[ Voor 52% gewijzigd door K0bo op 03-01-2006 17:14 ]


Acties:
  • 0 Henk 'm!

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 20-06 22:58

Nick_S

++?????++ Out of Cheese Error

Voor zover ik weet is het:
code:
1
xsi:schemaLocation="namespace namespace-location"

Dus in jouw geval iets van:
code:
1
xsi:schemaLocation="http://xxxxxx.nl/Schema/v1 http://xxxxxx.nl/Schema/v1/schema.xsd"

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:02
Hoi, lees even de P&W Quickstart (kan je vinden in de P&W FAQ), en pas je topic eens aan, adhv die quickstart.
Wat werkt er bv niet ? welke fout krijg je ? Krijg je geen fout, wat gebeurt er dan wat er niet zou moeten gebeuren, of gebeurt er iets niet wat wel zou moeten gebeuren ?
Kortom: meer info graag.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • K0bo
  • Registratie: April 2000
  • Laatst online: 17-01 21:34
Ik heb ook geprobeerd een schema cache te gebruiken:

Set SchemaCache = Server.CreateObject("Msxml2.XMLSchemaCache.4.0")
SchemaCache.add "http://xxxxxx.nl/CSDSchema/v1", "schema.xsd"

Maar dan stuit ik op deze foutmelding:

msxml4.dll error '800c0006'
The system cannot locate the object specified.
/development/xxxxx/core/core_importxml.asp, line 39

Acties:
  • 0 Henk 'm!

  • K0bo
  • Registratie: April 2000
  • Laatst online: 17-01 21:34
Als ik dit probeer:

ASP:
1
2
Set SchemaCache = Server.CreateObject("Msxml2.XMLSchemaCache.4.0")
SchemaCache.add "http://xxxxxx.nl/CSDSchema/v1", "http://xxxxxx.nl/CSDSchema/v1/schema.xsd"


Dan krijg ik de melding:

msxml4.dll error '800c0007'
No data is available for the requested resource.

Lijkt erop alsof de schema niet ingelezen kan worden, terwijl deze wel gewoon online staat...

Acties:
  • 0 Henk 'm!

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 20-06 22:58

Nick_S

++?????++ Out of Cheese Error

Na even een snelle google (800c007 msxml4.dll) kwam ik bij een asp FAQ uit, waarin dit stond:
It is possible that this error is due to a fauly script engine install. More likely, however, you are using the MSXML2.DOMDocument object to retrieve XML data from a URL, and receiving the following error:
code:
1
2
msxml3.dll error '800C0007'
No data is available for the requested resource.

If this is the case, you should use MSXML2.ServerXMLHTTP to retrieve the data, then use the DOMDocument object to parse it. See Article #2173 for plenty of samples (and see Q281142 for more information about the error, and a different workaround).
Misschien heb je wat aan die linkjes.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Acties:
  • 0 Henk 'm!

  • K0bo
  • Registratie: April 2000
  • Laatst online: 17-01 21:34
Het is inmiddels gelukt!!

Mbv van http://aspfaq.com/show.asp?id=2173

Uiteindelijk heb ik met MSXML2.ServerXMLHTTP de externe XSD uitgelezen.
De uitgelezen in een XMLSchemaCache gestopt en deze gekoppeld aan de XML

...ben blij dat het uiteindelijk gelukt is
Pagina: 1