[XSD, XML, ASP]XML controleren met XSD werkt niet

Pagina: 1
Acties:

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-04 12:54

Jaspertje

Max & Milo.. lief

Topicstarter
Hallo Allemaal,

Ik ben bezig om een XSD te maken voor mijn XML bestanden zodat deze 'goed' zijn. Voordat ik mijzelf helemaal in de wereld van XSD stort, wilde ik eerst kijken of het ook echt de moeite waard is.

Ik heb een verschrikkelijk simpel voorbeeld gemaakt, maar ik krijg het niet voor elkaar om de XSD aan de XML te koppelen.

De ASPen XML:
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dim SchemaCache, XMLData, XMLString
XMLData = "<DATA/>"
set SchemaCache = Server.CreateObject("Msxml2.XMLSchemaCache.4.0")
    SchemaCache.add "", server.MapPath("test.xsd")
    
set XML = Server.CreateObject("MSXML2.DomDocument")
    XML.schemas = SchemaCache
    XML.validateOnParse = true
    XML.loadXML XMLData
    
    Response.Write XML.parseError.reason
    
    Response.Write server.HTMLEncode(XML.xml)
set XML = nothing
set SchemaCache = nothing

De XSD (gegenereert door XMLSpy
code:
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="DATA">
        <xs:annotation>
            <xs:documentation>Comment describing your root element</xs:documentation>
        </xs:annotation>
    </xs:element>
</xs:schema>


De fout die ik krijg bij het inladen is:
msxml3.dll error '80004005'
Alleen XMLSchemacache-schemacollecties kunnen worden gebruikt.
/test.asp, line 10

(Dit is lijn 7 in het voorbeeld!)

Ik heb al geprobeerd om een oudere versie van XMLSchemaCache te gebruiken, maar dan is mijn XSD niet goed. Ook via Google en Microsoft wordt ik niet veel wijzer.

Als iemand een idee heeft..... graag

[ Voor 10% gewijzigd door Jaspertje op 04-07-2005 15:02 ]


  • joopst
  • Registratie: Maart 2005
  • Laatst online: 01-10-2024

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-04 12:54

Jaspertje

Max & Milo.. lief

Topicstarter
Dat is niet het probleem, het probleem is dat mijn hele schema niet goed is volgens de dom.. Gebruik ik in plaats van de 4.0 de 3.0 dan is het schema niet goed:
Onjuiste definitie voor het hoofdelement in Schema. is dan de fout bij het inladen van de XSD al..

[ Voor 48% gewijzigd door Jaspertje op 05-07-2005 09:43 ]


  • joopst
  • Registratie: Maart 2005
  • Laatst online: 01-10-2024
[code]
<%
dim SchemaCache, XMLData, XMLString
XMLData = "<DATA/>"
set SchemaCache = Server.CreateObject("Msxml2.XMLSchemaCache.4.0")
SchemaCache.add "", server.MapPath("schema.xsd")

set XML = Server.CreateObject("MSXML2.DomDocument.4.0")
XML.schemas = SchemaCache
XML.validateOnParse = true
XML.loadXML(XMLData)

Response.Write XML.parseError.reason

Response.Write server.HTMLEncode(XML.xml)
set XML = nothing
set SchemaCache = nothing

%>
[\code]

Ik heb het nagemaakt met je code :-)

Toen ik het XML object ook met 4.0 (MSXML2.DomDocument.4.0) maakte (zoals hierboven), toen werkte het wel.

success

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 08-04 12:54

Jaspertje

Max & Milo.. lief

Topicstarter
Mijn dank is zeer groot...