XML Validierung / XML Schema / NVDL

NVDL

NVDL

➪ Effiziente Validierung ist auch mit NVDL möglich, der Namespace-based Validation Dispatching Language.

Im Regelfall beruhen XML-Dokumente auf einem einzelnen Namespace. NVDL erlaubt, XML-Dokumente zu validieren, die mehrere Namespaces bzw. unterschiedliche Validierungs-Szenarien umfassen. Neben XML Schema kommen hier noch RelaxNG sowie Schematron in Betracht. (Theoretisch sollte das auch für RNC und DTD gelten, aber aber es kann sein, daß der ausführende Prozessor DTD und RNC nicht als NVDL-Schemasprache akzeptiert.)

Betrachten wir das folgende XML-Dokument, das drei unterschiedliche Namespaces enthält. Würden wir diese Datei mit einem (, , ) validieren, das nur den Default-Namespace "http://www.wilfried-grupe.de" umfaßt (wie das bei "CSV_XSD.xsd" und "CSV_RNG.rng" der Fall ist), so erhielten wir eine freundliche Fehlermeldung vom System: die nicht definierten Elemente aus den Namespaces "http://www.w3.org/2000/svg/" und "http://www.w3.org/1999/xhtml" sind in diesen Validierungsdokumente nicht vorgesehen und daher nicht erlaubt.


<CSV2XML 
   xmlns="http://www.wilfried-grupe.de" 
   xmlns:s="http://www.w3.org/2000/svg/" 
   xmlns:h="http://www.w3.org/1999/xhtml">
    <DS pos="1">
        <ORTID>1</ORTID>
        <ORTNAME>Neustadt</ORTNAME>
        <ID>1</ID>
        <NAME>Holzflos</NAME>
        <VORNAME>Hugo</VORNAME>
        <h:body>
            <h:p>MOIN</h:p>
        </h:body>
        <GEHALT>234.56</GEHALT>
        <IDORT>1</IDORT>
        <AUSGABEN>3563.14</AUSGABEN>
    </DS>
    <s:rect/>    
</CSV2XML>

Das NVDL-Konzept erlaubt nun, bestimmte Namespaces gezielt zu validieren, andere zu erlauben oder auch zu verbieten (reject). Da in den folgendes rules der Namespace "http://www.w3.org/2000/svg/" auf "rejected" gesetzt ist, würde eine Validierung des vorstehenden XML-Dokuments auf einen Fehler laufen.


<rules xmlns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0">
    <namespace ns="http://www.wilfried-grupe.de">
        <validate schema="CSV_XSD.xsd">
            <message>CSV_XSD.xsd</message>
        </validate>                  
        <validate schema="CSV_RNG.rng">
            <message>CSV_RNG.rng</message>
        </validate>
    </namespace>
    <namespace ns="http://www.w3.org/1999/xhtml">
        <allow/>
    </namespace>
    <namespace ns="http://www.w3.org/2000/svg/">
        <reject>
            <message>Keine SVG-Elemente erlaubt</message>
        </reject>        
    </namespace>
</rules>

pic/NVDL1.jpg

wg / 27. November 2017



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse







Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/NVDL.html