Avatar billede kedde65 Praktikant
05. oktober 2003 - 21:17 Der er 8 kommentarer og
2 løsninger

validering med W3 schema

Hej

Jeg er ved at lære at lave xml dokumenter, og dermed også xml schema. Jeg kan ikke rigtigt finde hoved og hale i det. For det første, hvad skal endelsen være på en schema fil?
Hvprdan gør jeg mit xml dokument opmærksom på at jeg har det schema det skal opfylde?

og sidst men ikke mindst, kan det passe at når jeg forsøger at validere med MSXML 4.0 parseren så kan den ikke finde de fejl som validatoren på http://apps.gotdotnet.com/xmltools/xsdvalidator/Default.aspx ka finde?

Håber i kan svare på de små spørgsmål :-)

VH CK
Avatar billede arne_v Ekspert
05. oktober 2003 - 21:22 #1
1)  schema filer hedder normalt .xsd

2)  når jeg bruger schema i Java så angiver jeg ikke schema i XML filen
    men i validator koden
Avatar billede kedde65 Praktikant
05. oktober 2003 - 21:24 #2
Jo men nu skal jeg bruge Visual Basic til det, kan jeg ikke gøre det vha. MSXML 4.0 parseren? og kan jeg egentligt ikke sætte det ind et eller andet sted i min XML fil?

VH CK
Avatar billede arne_v Ekspert
05. oktober 2003 - 21:29 #3
http://www.w3schools.com/schema/schema_howto.asp

har et eksmepel hvor referancen er i XML dokumentet:

<?xml version="1.0"?>

<note
xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">

<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Avatar billede kedde65 Praktikant
05. oktober 2003 - 21:29 #4
Nå never mind - jeg fandt faltisk selv ud af det. Du får lige lidt point for hjælpen omkring fil navnet :-)
Avatar billede arne_v Ekspert
05. oktober 2003 - 21:32 #5
Der er en artikel på:
  http://www.developerfusion.com/show/2386/2/
som måske er relevant (jeg gør ikke selv ret meget i VB)
Avatar billede Slettet bruger
05. oktober 2003 - 21:33 #6
Det kan du godt:

Dit rod element kan f.eks. se sådan ud:

<kedde:root xmlns:kedde="http://schemas.keddes-server.dk/tags"
xsi:schemaLocation="http://schemas.keddes-server.dk/tags http://schemas.keddes-server.dk/tags.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

...

</kedde:root>

"Nøglen" er det namespace der ender på "Schema-instance" - med det kan du fortælle hvor schema filen ligger (gøres med xsi:schemaLocation attributten - VIGTIGT: Denne attribut indeholder 2 ting - først det namespace du definerer, dernæst en URL til schemafilen.)
Hvis du ikke bruger noget namespace er der en anden attribut: xsi:noNamespaceSchemaLocation="[URL]"

/CS
Avatar billede Slettet bruger
05. oktober 2003 - 21:33 #7
Damn - too slow... :)

/CS
Avatar billede kedde65 Praktikant
05. oktober 2003 - 21:46 #8
GreyState>> ok - nu fandt jeg så ud af at man kan koble det direkte på sit xml dokument, men hvad er fordelen i det fremfor som arne skrev at sætte sit skema på i det program man bruger det i? Jeg ved godt at jeg vender spørgsmålet om, men det er ret vigtigt at jeg fatter det her fuldstændigt :-) Jeg skal nok uddele point senere...

VH CK
Avatar billede Slettet bruger
05. oktober 2003 - 21:55 #9
Hvis du lægger det ind i dit XML dokument, kan enhver parser der henter dit dokument forsøge at validere det. Det kunne f.eks. være du havde en stak links i eget format, som du brugte både online (med f.eks. en editor) og offline (VB program) - så er det jo smart at schemafilen er refereret i datafilen.

/CS
Avatar billede janegil Nybegynder
06. oktober 2003 - 19:10 #10
I prinsippet håper jeg også at skjemaet kan hjelpe en browseer til å vise data korrekt.

I fx http://landsbank.fo/test/cd-toc.xml skulle man håpe at et skjema som forteller at duration-elementet faktisk har type duration, kunne hjelpe en browser til å vise varigheten av en sang på mere fornuftig vis enn "P0M59S". (Jeg lager et sprøsmål på den, når jeg finner ut av hva jeg egentlig skal spørre om.)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester