schematron.com
Open in
urlscan Pro
103.127.18.104
Public Scan
Submitted URL: http://schematron.com/
Effective URL: https://schematron.com/
Submission Tags: tranco_l324
Submission: On May 25 via api from DE — Scanned from AU
Effective URL: https://schematron.com/
Submission Tags: tranco_l324
Submission: On May 25 via api from DE — Scanned from AU
Form analysis
1 forms found in the DOMPOST /search.html?question=
<form novalidate="novalidate" action="/search.html?question=" method="post" class="v-form s-search-field-form">
<div class="v-input s-search-field v-input--hide-details theme--light v-text-field v-text-field--single-line v-text-field--solo v-text-field--is-booted v-text-field--enclosed v-text-field--placeholder">
<div class="v-input__control">
<div class="v-input__slot grey lighten-3">
<div class="v-text-field__slot"><label for="site-search" class="v-label theme--light" style="left: 0px; right: auto; position: absolute;">Search</label><input role="combobox" autocomplete="off" aria-label="Search"
aria-controls="autocomplete-site-search" hide-no-data="" aria-haspopup="true" aria-expanded="false" id="site-search" type="search"></div>
<div class="v-input__append-inner">
<div class="v-input__icon v-input__icon--clear"><button disabled="disabled" type="button" aria-label="clear icon" class="v-icon notranslate v-icon--disabled v-icon--link theme--light"><svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24" role="img" aria-hidden="true" class="v-icon__svg">
<path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"></path>
</svg></button></div>
</div>
<div class="v-input__append-inner"><button type="submit" class="mr-n3 v-btn v-btn--icon v-btn--round theme--light v-size--default"><span class="v-btn__content"><svg class="s-icon icon-search grey--text text--darken-1" title="search"
viewBox="0 0 512 512" role="img">
<title>search icon</title>
<path
d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z">
</path>
</svg></span></button></div>
</div>
</div>
</div>
<div class="v-menu"><!----></div>
</form>
Text Content
Skip to search Skip to navigation Skip to content Search search icon Schematron angle-down icon News angle-down icon Hints angle-down icon Opinion angle-down icon Academic Citing Implementation Off-Topic Open Licenses Overview Who Uses? WhyIsSchematronDifferent? A language for making assertions about the presence or absence of patterns in linked XML documents. New Book Schematron: A Language for Validating XML Erik Siegel’s new book is a systematic and thorough introduction explaining all elements and attributes of Schematron with common ways to use them. Developers will appreciate the large XPath primer, together with appendixes on Schematron, Namespaces, SVRL and Schematron Quick Fix. It follows the most recent version of the ISO Standard and is geared for XPath3. The 260 page XML Press book is available in paperback; electronic versions are available in ePub, mobi (Kindle), and PDF. Release announced with overview: XML.COM (November 2022.) A book review by Rick Jelliffe is here. Erik also introduces Schematron in two YouTube videos from Declarative Amsterdam (1 and 2) Nov 7-9, 2022. About schematron.com A website for all things Schematron. * Scores of articles on topics about Schematron, XML, Standards and more. Use the Search panel at the top, or browse them using the menu for News, Standards, Hints, Opinion, and Off-Topic. * Links to Open things: implementations, standards, licenses, documentation * Specialist material: preferred academic citation conventions, procurement best practise. * New: Dave Pawson's Schematron Tutorial is coming. * New: The Schematron Open Documentation project is coming (4Q 2021) OVERVIEW What Makes Schematron Unique? Who Uses Schematron? WHAT IS SCHEMATRON USED FOR? Schematron is used for business rules validation, data reporting, general validation, quality control, quality assurance, firewalling, filtering, constraint checking, naming and design rules checking, statistical consistency, data exploration, transformation testing, feature extraction, house-style-rules checking. It is use in sectors such as finance, health, aerospace, homeland security, tax, scientific computing, and publishing. NEWS: Schematron has helped our fight against COVID: in the US, real-time data on Emergency Medical admissions and causes is collected by National Emergency Medical Services Information System (NEMSIS). Schematron has allowed them a practical route to having subject-matter experts specify rules in plain English, then developers implement exactly those rules. Read their excellent Schematron Guide, or see their online Library of national and state-level Schematron Rules. (Hint: try “PA”) -------------------------------------------------------------------------------- OPEN SOURCE IMPLEMENTATIONS There are two Open Source implementations of Schematron for XSLT at GitHub: * The skeleton implementation, which was the original code by Rick Jelliffe with numerous contributions. It is not expected that this code will be developed further. * SchXslt [ʃˈɛksl̩t], a cleaner re-implementation by David Maus, very compatible with the skeleton. The initial version only took 704 lines of code! Search the web for implementations of Schematron in your language of choice: from Ant to Scala; these typically host the XSLT scripts and look after housekeeping. As well, several systems are available which support Schematron embedded in other Schema languages: for example, the Apache Daffodil system allows Schematron embedded in the XSD-subset DFDL. Implementation -------------------------------------------------------------------------------- OPEN STANDARD The international standard is ISO/IEC 19757-3. Available for $300 AUD. The schemas for Schematron from the international standard are Open Source/Open Standards: they are available at this GitHub site. * Release comments on the 3rd edition, 2020 * Release comments on the 2nd edition, 2016 ISO Schematron is an open standard, in the sense of the IEEE, ISOC, W3C, IETF, IAB, Foundation for Free Information Interchange (FFII), Free Software Foundation Europe (FSFE), requiring a formal, open process and unencumbered use. -------------------------------------------------------------------------------- OPEN LICENSING See here for details on the free and Open Source licenses for Schematron and material on this site. -------------------------------------------------------------------------------- In the long run, I think Schematron may well be the XML project’s greatest technical legacy to the world. Simon St Laurent, Technical Journalist and O’Reilly Editor, xml-DEV list, 19 May 2016 -------------------------------------------------------------------------------- COMMUNITY Schematron is remarkable in how few questions people have about it. This is because the language is so small, and many questions people might have are actually XPath questions. * Andrew Sales hosts the Schematronist mail-list. * Betty Harvey's schematron-love-in mail list is no longer active but has archives. * To raise issues for the ISO Schematron standard, use the GitHub Issues facilities on Tony Graham's schematron-enhancement-proposals. -------------------------------------------------------------------------------- ON HOLD: OPEN DOCUMENTATION AND TUTORIAL To assist users, implementers and evaluators, Schematron.com will be hosting two projects (under preparation): Dave Pawson's Schematron Tutorial A file-html iconguided tour for XSLT-based implementations of ISO Schematron (2006), with information and examples. The "Schematron Open Documentation" Project Let's develop an unofficial, free and openly-available document that explains the technology of ISO Schematron! (For discussion on how Schematron Open Documentation relates to Open Standard, see Procurement Best Practise for an Open Standard of Schematron.) -------------------------------------------------------------------------------- SCHEMATRON TOPICS PESKY HUMANS * Seven different styles of assertion text * Error messages and diagnostics should be inputs to the developer not outputs * Schematron and Scrum * Integrating Schematron with syslog * How to make your markup language pleasant * Step out of Time * A mind map (UML package diagram) for Schematron FUNDAMENTAL CONCEPTS * Fundamental Structural Patterns Bolognese * Highly Generic Schemas * A three-layer model for XML with Schematron * Quasi-static and quasi-dynamic constraints * Islands of validity * Standard severity levels * What is the difference between Schematron's role and flag attributes? * The most common programming error with Schematron * file-pdf iconFrom Grammars to the Schematroneye icon (PDF) (1999) - the first public presentation of Schematron, at ASCC, Academia Sinica, Taiwan, explaned in terms of cohesion and coupling. UNDERSTANDING ASSERTIONS * Alan Turing and Tony Hoare on assertions * Patterns in Time * Six kinds of validation using Schematron * Correct and Robust * Global exclusions are so easy in Schematron * “Schemas do not imply any semantics of documents” PERFORMANCE * Validation result caching using a keystore * Be smart in your choice of XSLT engine * Optimizing Schematron using @saxon:memo-function * SOA validation logging: reducing first-response latency * "Schematron is inefficient"? DOCUMENT METRICS AND TESTING * Three text-based complexity metrics for Schematron * Fanout versus Confusion: two complexity metrics * How many documents do you need to test? * Using Schematron to test transformations * Unit testing your Schematron schema with XSpec * Is the Software Design Crisis caused by unexecutable design criteria? CONVERTING XML SCHEMAS TO SCHEMATRON xsd2sch It may seem impossible, or mad, to attempt to convert XSD to Schematron; or, rather, to partly implement XSD in XSLT 2 through Schematron. In 2007-2008, JSTOR funded an exploratory project at Allette Systems to write such a converter from XSD to Schematron, for a large subset they specified. The techniques we developed were detailed in a long series of articles on the O' Reilly website: Converting XML Schemas to Schematron, which are now collected here with the related articles from the same time. The XSLT2 code is available on GitHub under the MIT license. * What kind of content models do users of conventiona schema languages use? * Converting Schematron to XSD (the reverse!) * Jürgen Rennau’s Location Trees welcomed * Can Schematron use grammars to test assertions? * Could Schematron be used for Content Completion in editors? SOFTWARE Current * SchXslt - Schematron engine in XLST * XSLT 1,2,3 * uses same pre-processors as the skeleton Recent * Schematron skeleton - Schematron engine in XSLT * XSLT 1,2 * not actively maintained now Ancient * Topologi Schematron Validator - 20-year old desktop application in VB * Pre-ISO Schematron 1.6 * Free to use, not open source * Supports xsd, RELAX NG, DTD, schematron in XSD or RELAX NG SCHEMATRON EXTENDED * Schematron QuickFix * Schematron re-imagined for JSON * Validating complex text, embedded in XML without markup, in Schematron * Validation of Markdown with Schematron * Using XPath to make assertions is now a common technique * Can I assert patterns in Java Objects with Schematron? BEYOND SCHEMATRON RAN 乱 - A MODERNIZED XML FOR PARALLEL PARSING Rapid Access Notation Rapid Access Notation is a thought bubble that examines what an XML revised to support modern parallel CPUs (SIMD, multi-core, cached, mutli-threaded, GPUS, etc) could look like. APATAK - STREAMING VALIDATION OF ARBITRARY SEGMENTS Apatak One good bubble deserves another. If RAN is a markup language which can be divided into separate fragments and parsed by separate threads, it must also need a validation language that also can work on arbitrary segments without requiring content. Apatak has some similarities in its pairwise approach to 2002's one-element Hook schema language. FEATURE GRAMMARS - A LITTLE LANGUAGE FOR FEATURE EXTRACTION Feature extraction discovers some general property of an XML document, to direct subsequet processing. Is it a New Zealand document or a Fijian? Does it use the old tags or the new ones? Is it a tax return with no income? Is it a form where the person claims to be both single and married? This can certainly be done with Schematron and SVRL. However, Feature Grammars provides a simpler and more direct language and XSLT for it. PRESTO - ALL DOCUMENTS; EACH GRAIN; ANY FORMATS; EVERY URL PRESTO "All documents, views and metadata at all significant levels of granularity and composition should be available in the best formats practical from their own permanent hierarchical URIs.” file-pdf iconPRESTO: WWW Information Architecture for Legislation and Public Information Systemseye icon (PDF) is a 2008 informatics proposal that influenced how laws are published online. Here is a old blog post discussing it, plus Jenni Tennison's excellent follow-up. THOUGHT PATTERNS AND SCHEMA LANGUAGES * The most interesting class of computer languages * Analysis and synthesis: are we atuned to each kind of thinking? * How many developers think different? * Design motivations of different schema languages * Schemas: different strokes from different folks (XML.COM) * So when is it a good idea to throw theory out? XML BEYOND XML * RAN - Rapid Access Notation (2021) - remove barriers to parallel lexing/parsing * RAN - Raw Access Notation (2021) (initial PDF, obsolete) * The Goals of XML at 25: and the one change that XML really needs now * The X Refactor (2018) - XML ecosystem refactored into 5 layers * XMON combining XML and JSON (2017) - allow structs in start-tags * Editor's Concrete Syntax (2002) - a lexical profile of SGML for coloring editors SCHEMA LANGUAGES REAL AND IMAGINED * Feature Grammars - a little language for extracting general features of documents * Hook - a one-element schema language using partial ordering * RAN Apatak - streaming validation of arbitrary segments * SHRVL - Schematron Hierarchical Report View Language - nested version of SVRL * Probabilistic schemas, hidden Markov models, neural nets for XML * Sugar-Free XSD - resolved XSD subset with Schematron validator * Lightweight schemas above structs - inline Attribute Grammars in PIs * XML Notation Schemas (1999) - a framework with pluggable mini-validators * Weak Validation (1999) -the basics of "feasible validation" later implemented * Using XSLT as a validation language (1999) - the start of the line of thinking that lead to Schematron * Family Tree of Schema Languages for XML (2007) (PNG) COMPUTER LANGUAGES, LIBRARIES Updates * What’s in Java 18 for XML Developers? * What's in Java 17 for XML Developers? * What's in Java 13-16 for XML Developers? * What's in Java 11 for XML Developers? * What's in Java 10 (and 9) for XML developers? * XPath 3.1 adds Maps and Arrays, and new operators '!' '?' - so ~ LISP? * Overview of Rust and Pony * Can Intel ISPC help stagnant C get its mojo back? * The Fastest Growing Programming Language of 2018? * Using C++ Instrinsic Function For Pipelined Text Processing Issues * Assertions in Java * Sorting out Log4J 2.0-s string schemas * Top 3 hints for avoiding and diagnosing character encoding problems Close angle-up icon Go to top © 1999–2021 Rick Jelliffe. PageSeeder and hosting generously provided by Allette Systems (Australia) 2024.05-01