Presentation is loading. Please wait.

Presentation is loading. Please wait.

Schematron Tim Bornholtz. Schema languages Many people turn to schema languages when they want to be sure that an XML instance follows certain rules –DTD.

Similar presentations


Presentation on theme: "Schematron Tim Bornholtz. Schema languages Many people turn to schema languages when they want to be sure that an XML instance follows certain rules –DTD."— Presentation transcript:

1 Schematron Tim Bornholtz

2 Schema languages Many people turn to schema languages when they want to be sure that an XML instance follows certain rules –DTD –XML Schema –Relax NG

3 What is wrong with that? These schema languages have very complicated grammars Not flexible enough to accurately reflect real business rules Often very difficult to map the business rules written in English to the technical rules defined by the Schema

4 What is Schematron Schematron is a language that allows you to directly express rules Without a whole grammatical infrastructure Schematron is an ISO standard Largest benefit is the ability to describe dynamic constraints Schematron can describe syntax constraints like XML Schema Can also describe semantic constraints which XML Schema cannot describe

5 Comparing Schema Languages White is core capability Light gray represents capabilities that are possible but inconvenient Dark gray capabilities require specialized schema organization

6 Attributes & Elements

7 Data Types

8 General Features

9 Why Schematron in Financial Aid? We trade many files with our partners and these are increasingly XML. Schematron is more expressive than other schema languages Can handle more complicated dependencies that XML Schema cannot.

10 Pre-requisites I'm going to assume that you're familiar with: –XML –XML Namespaces –XPath –XSLT

11 Components of a Schematron file – - top level construct – - defines the context »

12 Assert is the basic rule within a Schematron file to test for a valid condition Message will be displayed whenever the test is false Syntax: Message to display if the expression is false Any XSLT or XPath expression can be used including boolean logic and complicated formulas

13 Use the instruction to communicate information apart from the validation errors The message will be displayed when the test condition is true. Syntax: Message to display if the expression is true

14 Basic building block of a Schematron file. Syntax: – The context can be any valid XPattern –XPattern is a subset of XPath –XPattern is the way to identify templates in XSLT All of the statements for a particular rule context are grouped together

15 A is a collection of related rules. Syntax: The rules within a pattern do not need to work on the same elements. The name will be displayed in the output. The name will help you identify which section of the document is failing the rules.

16 Root element of the document Schematron 1.5 must use the namespace: http://www.ascc.net/xml/schematron ISO Schematron must use the namespace: http://purl.oclc.org/dsdl/schematron

17 Very simple example Example 1 Root element should be "doc".

18 Basic assertions Schematron can validate many basic conditions –Presence of elements –Absence of elements –Sequence of elements within an element –Relative order of elements to each other –Validate for a certain number of elements

19 Presence or absence of tags Require that the loan type be an element that is a direct child element of the current context Require that the LoanType element is not present Require that there are exactly 5 child elements of the current context

20 Order of elements A "title" must be immediately followed by a "subtitle".

21 Taking your validation further Schematron can do may things that XML Schemas cannot handle –Cross field relationships –Meaningful error messages

22 Cross Field Relationships XML Schemas can validate the contents and the data type of one field Not able to easily validate relationships between fields. –If field A contains a value X then field B must contain a value Y

23 PLUS Student cannot be Borrower Borrower for a PLUS loan must not be the student FFEPGradPLUS the borrower must be the student Borrower for a Grad PLUS loan must be the student

24 Grad PLUS Grade Level If a student is getting a GradPLUS loan, they must be a graduate student. Student must be a Graduate level for FFELPGradPLUS award

25 Stafford Loan Borrower For a Stafford loan, the Borrower is the Student No Borrower section is sent (different than GradPLUS)‏ Borrower section not necessary for Stafford loan

26 Date Ranges Checking validity of two related dates date.difference.function.xsl Award Begin Date must be within 30 days of first disbursement

27 Meaningful messages To get the name of the XML element used in an or statement use the tag The tag will display the actual value of the element. 128"> value ‘ ’ is not valid

28 Phases If we were to combine all of the business rules for CR:C into one schema it would be a very large file. A is a simple collection of patterns that are executed together.

29 Namespaces Schematron can be used to validate XML that uses namespaces Declare the namespace as a child of the element Then use the namespace like normal

30 Running the examples There are implementations available for many languages:.Net, Java, Python, Perl, Ruby The 1.5 reference implementation compiles the Schematron file into a XSLT file that can be used against the XML instance document. Most any XSLT engine can be used with the reference implementation but the fastest are Saxon for Java and MSXSLT for.Net

31 Running the examples (cont.)‏ I'm using Saxon for Java but the process is similar for most all XSLT processors 1) java -jar saxon8.jar -o temp.xsl file.sch schematron-basic.xsl 2) java -jar saxon8.jar instance.xml temp.xsl 3) rm temp.xsl

32 Schematron provides rule processing capabilities that other schema languages cannot provide Schematron can be used in conjunction with XML Schemas –Continue to use the XML Schemas that are already defined –Define complex rules with Schematron

33 Contact Information Tim Bornholtz President, The Bornholtz Group Email: tim@bornholtz.com Phone: (540) 446-8404 Web: http://www.bornholtz.com


Download ppt "Schematron Tim Bornholtz. Schema languages Many people turn to schema languages when they want to be sure that an XML instance follows certain rules –DTD."

Similar presentations


Ads by Google