Schematron - Schematron

Schematron to oparty na regułach język walidacji służący do tworzenia stwierdzeń dotyczących obecności lub braku wzorców w drzewach XML . Jest to język schematów strukturalnych wyrażony w XML przy użyciu niewielkiej liczby elementów i XPath .

W typowej implementacji schemat XML schematu Schematron jest przetwarzany na normalny kod XSLT w celu wdrożenia wszędzie tam, gdzie można użyć XSLT.

Schematron jest zdolny do wyrażania ograniczeń w sposób, którego nie potrafią inne języki schematów XML, takie jak XML Schema i DTD . Na przykład może wymagać, aby zawartość elementu była kontrolowana przez jedno z jego rodzeństwa. Może też zażądać lub wymagać, aby element główny, niezależnie od tego, który to element, miał określone atrybuty. Schematron może również określić wymagane relacje między wieloma plikami XML.

Ograniczenia i reguły treści mogą być powiązane z komunikatami o błędach walidacji „zwykłym angielskim”, umożliwiając tłumaczenie numerycznych kodów błędów Schematron na zrozumiałe komunikaty o błędach użytkownika.

Aktualne zalecenie ISO to technologia informacyjna, języki definicji schematu dokumentów (DSDL) , część 3: walidacja oparta na regułach, Schematron (ISO / IEC 19757-3: 2020).

Używa

Ograniczenia są określane w Schematron przy użyciu języka opartego na XPath, który można wdrożyć jako kod XSLT, co czyni go praktycznym dla aplikacji, takich jak następujące:

Dodatek do walidacji strukturalnej
Testując pod kątem ograniczeń współwystępowania, nieregularnych ograniczeń i ograniczeń między dokumentami, Schematron może rozszerzyć walidacje, które mogą być wyrażone w językach, takich jak DTD , RELAX NG lub XML Schema .
Lekki silnik reguł biznesowych
Schematron nie jest wszechstronnym silnikiem reguł Rete , ale może być używany do wyrażania reguł dotyczących złożonych struktur za pomocą dokumentu XML.
Reguły podświetlania składni edytora XML
Niektóre edytory XML używają reguł Schematron do warunkowego podświetlania plików XML pod kątem błędów. Nie wszystkie edytory XML obsługują Schematron.

Wersje

Schematron został wynaleziony przez Ricka Jelliffe'a w Academia Sinica Computing Center na Tajwanie. Opisał Schematron jako „ miotełkę do kurzu, która ma dotrzeć do części, których inne języki schematów nie mogą dosięgnąć”.

Najpopularniejsze wersje Schematron to:

  • Schematron 1.0 (1999)
  • Schematron 1.3 (2000): Ta wersja wykorzystywała przestrzeń nazw http://xml.ascc.net/schematron/ . Był obsługiwany przez implementację XSLT z architekturą wtyczek.
  • Schematron 1.5 (2001): Ta wersja została szeroko wdrożona i nadal można ją znaleźć.
  • Schematron 1.6 (2002): Ta wersja była podstawą ISO Schematron i została przez niego przestarzała.
  • ISO Schematron (2006): Ta wersja reguluje kilka funkcji i zapewnia format wyjściowy XML, Schematron Validation Report Language (SVRL). Używa nowej przestrzeni nazw http://purl.oclc.org/dsdl/schematron .
  • ISO Schematron (2010): ta proponowana wersja dodaje obsługę XSLT2 i dowolnych właściwości.

Schematron jako standard ISO

Schematron został znormalizowany przez ISO jako technologia informacyjna, języki definicji schematu dokumentów (DSDL) , część 3: walidacja oparta na regułach, Schematron (ISO / IEC 19757-3: 2016).

Ten standard jest dostępny bezpłatnie na liście specyfikacji ISO publicznie dostępnych . Wersje papierowe można kupić od ISO lub krajowych organów normalizacyjnych.

Schematy korzystające z ISO / IEC FDIS 19757-3 powinny używać następującej przestrzeni nazw:

http://purl.oclc.org/dsdl/schematron

Przykładowa reguła

Reguły Schematron można tworzyć za pomocą standardowego edytora XML lub aplikacji XForms . Oto przykładowy schemat:

<schema xmlns="http://purl.oclc.org/dsdl/schematron">
   <pattern>
      <title>Date rules</title>
      <rule context="Contract">
         <assert test="ContractDate &lt; current-date()">ContractDate should be
 in the past because future contracts are not allowed.</assert>
      </rule>
   </pattern>
</schema>

Ta reguła sprawdza, czy element XML ContractDate ma datę wcześniejszą niż data bieżąca. Jeśli ta reguła nie powiedzie się, walidacja zakończy się niepowodzeniem, a do użytkownika zostanie zwrócony komunikat o błędzie będący treścią elementu assert.

Realizacja

Schematy Schematron są odpowiednie do stosowania w potokach XML , umożliwiając tym samym projektantom procesów przepływu pracy tworzenie i utrzymywanie reguł przy użyciu narzędzi do manipulacji XML. Na przykład język potokowy XProc W3C ma natywne wsparcie dla przetwarzania schematu Schematron poprzez jego krok „walidacja za pomocą schematu”.

Ponieważ schematy Schematron można przekształcić w arkusze stylów XSLT , można ich używać w potokach XML, które obsługują transformację XSLT. Apache Ant zadanie może być użyty do konwersji zasady Schematron do plików XSLT.

Istnieje również natywna implementacja Schematron, jak implementacja Java od Innovimax / INRIA , QuiXSchematron , która również obsługuje strumieniowanie .

Zobacz też

Bibliografia

Zewnętrzne linki