Gern stehe ich zur fachlichen Unterstützung in XML-Technologien, C#.NET, VisualBasic.NET und Java zur Verfügung. Sprechen Sie mich einfach an: Mail oder ☎ 0151 . 750 360 61


XML-Validierung: Wozu? / NVDL

NVDL

NVDL

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

Häufig beruhen XML-Dokumente auf einem einzigen 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 es kann sein, dass der ausführende Prozessor DTD und RNC nicht als NVDL-Schemasprache akzeptiert.)

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


<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

Betrachten Sie das folgende XML-Dokument, das drei unterschiedliche Namespaces enthält.


<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>

Würden Sie diese Datei gegen das oben beschriebene NVDL validieren, so erhielten Sie eine freundliche Fehlermeldung vom System:


Programmname: Jing
Fehlerlevel: error
Beschreibung: elements from namespace "http://www.w3.org/2000/svg/" are not allowed

Der Fehler liegt in der Zeile <s:rect/>.

wg / 12. April 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






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