Język wysyłania walidacji oparty na przestrzeni nazw
Namespace-based Validation Dispatching Language (NVDL) to język schematu XML służący do sprawdzania poprawności dokumentów XML, które integrują się z wieloma przestrzeniami nazw . Jest to ISO / IEC i jest częścią 4 specyfikacji schematu DSDL . Wiele prac nad NVDL opiera się na starszym języku routingu przestrzeni nazw .
Walidacja
Większość języków XML opiera się na pojedynczej przestrzeni nazw XML. W takich przypadkach oczekuje się, że elementy XML w określonej przestrzeni nazw należą do tego języka, a elementy w innej przestrzeni nazw należą do innego języka. Wiele języków XML pozwala na użycie dowolnych elementów z innych przestrzeni nazw.
Problem pojawia się przy próbie walidacji tych hybrydowych dokumentów. Każdy język jest zdefiniowany przez określony schemat XML, ale nie ma powiązań między schematami.
Celem NVDL jest zapewnienie tego powiązania w oparciu o przestrzenie nazw. Powiązując walidator schematu ze schematem NVDL, walidator może używać wielu schematów do sprawdzania poprawności pojedynczego dokumentu, przełączając się między nimi na podstawie przestrzeni nazw używanych w tym dokumencie.
Format
Dokumenty NVDL zawierają listę reguł, z których każda ma jedną lub więcej akcji do wykonania, gdy ta reguła jest prawdziwa. Reguły obejmują określoną przestrzeń nazw i ustawienie trybu. NVDL rozpoznaje tryb jako określony stan, który zmienia się w trakcie przetwarzania dokumentu.
Akcje mają miejsce, gdy reguła jest prawdziwa. Akcje mogą obejmować sprawdzanie poprawności schematu, deklarowanie nieważności dokumentu instancji, akceptowanie tej części dokumentu instancji jako ważnej i kontynuowanie sprawdzania poprawności tak, jak zrobił to element nadrzędny. Akcje mogą również zmienić bieżący tryb NVDL. Gdy reguła jest prawdziwa, można wykonać wiele akcji; pozwala to na sprawdzanie poprawności sekcji dokumentu instancji z wieloma schematami innego typu.
Przykład
<rules xmlns= "http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0" > <przestrzeń nazw ns= "http://www.w3.org/1999/xhtml" > <sprawdzanie schematu= "xhtml.rng" /> </namespace> <namespace ns= "http://www.w3.org/2000/svg/" > <validate schema= "svg.sch" /> </namespace> <anyNamespace> <odrzuć/> < /dowolnaPrzestrzeńNazw>
</reguły>
Ten schemat NVDL zweryfikuje części, które używają przestrzeni nazw XHTML 1.0 ze schematem RELAX NG , zweryfikuje części, które używają przestrzeni nazw SVG 1.0 ze schematem Schematron i odrzuci dokument jako nieprawidłowy, jeśli napotka elementy z jakąkolwiek inną przestrzenią nazw.