SlideShare a Scribd company logo
The XCRI-CAP 1.2 Validator



      Presented by Craig Hawker
Pre-reqs!
Hopefully everyone already knows about
these…!
• Wiki: http://www.xcri.org/wiki/
  (then click 1.2 specification)
• KB: http://www.xcri.co.uk/
  (specifically the Course Data Programme
  area)
• Forum: http://www.xcri.org/forum/
What does it (validation) aim to do?


              Feed quality and consistency!



It is important to note that you will need exposure to both the XCRI-CAP 1.2
standard (via the wiki) and the Data Definitions and Vocabulary documents
(via the website) to create a feed which validates!
How does it work?
                        XML structural issues:
                        • Nesting
   XML Validation       • Namespace declarations
                        • Character literals
                        • …

                        XML document structure:
                        • Correct element capitalisation
XML Schema Validation   • Correct element namespaces
                        • Simple element content validation
                        • …

                        Everything else:
                        • URL/Email/Telephone/etc. validation
Rule-based Validation   • Element lengths
                        • Data Definitions Document rules
                        • …
What feedback do I get?
• A summary of issues             Exceptions
  broken down by severity
• Issues grouped by severity
  then issue                      Warnings
• “Helpful” text
• Drill-down into line and
  character information (if    Recommendations
  available)
Hints and Tips
• Start with small XML snippets (e.g. a single
  course) then work upwards to a full
  catalog
• If you have problems then use the XCRI
  forum: http://www.xcri.org/forum
• Some issues require manual checking
• Remember that validation is iterative
• Bear in mind that element order is
  important (for validation, NOT the spec)
How do I use it?
By far the easiest way is to use the online
version at http://validator.xcri.co.uk. This
way you get any bug fixes or rule base
alterations immediately…

...however the project is open-source and
you can download it all from
http://code.google.com/p/xcricap-validator/
(.NET 4.0, written in C#).
Example
End


@CraigHawker



craig.hawker@gmail.com

More Related Content

Viewers also liked

Legal Aid in Conflict Zones - Bastar
Legal Aid in Conflict Zones - BastarLegal Aid in Conflict Zones - Bastar
Legal Aid in Conflict Zones - Bastar
Naveen Bhartiya
 
Prova finale presentazione
Prova finale presentazioneProva finale presentazione
Prova finale presentazione
Filippo Campolmi
 
GI2012 hoffmann-address intro
GI2012 hoffmann-address introGI2012 hoffmann-address intro
GI2012 hoffmann-address intro
IGN Vorstand
 
Come funziona internet1
Come funziona internet1Come funziona internet1
Come funziona internet1
brunocip
 
E Com Center Klagenfurt
E Com Center KlagenfurtE Com Center Klagenfurt
E Com Center Klagenfurt
ecommerce
 
GI2013 ppt hoffmann_address_intro
GI2013 ppt hoffmann_address_introGI2013 ppt hoffmann_address_intro
GI2013 ppt hoffmann_address_intro
IGN Vorstand
 
Tuco tuco stein
Tuco tuco steinTuco tuco stein
Tuco tuco stein
avisaassociacao
 

Viewers also liked (7)

Legal Aid in Conflict Zones - Bastar
Legal Aid in Conflict Zones - BastarLegal Aid in Conflict Zones - Bastar
Legal Aid in Conflict Zones - Bastar
 
Prova finale presentazione
Prova finale presentazioneProva finale presentazione
Prova finale presentazione
 
GI2012 hoffmann-address intro
GI2012 hoffmann-address introGI2012 hoffmann-address intro
GI2012 hoffmann-address intro
 
Come funziona internet1
Come funziona internet1Come funziona internet1
Come funziona internet1
 
E Com Center Klagenfurt
E Com Center KlagenfurtE Com Center Klagenfurt
E Com Center Klagenfurt
 
GI2013 ppt hoffmann_address_intro
GI2013 ppt hoffmann_address_introGI2013 ppt hoffmann_address_intro
GI2013 ppt hoffmann_address_intro
 
Tuco tuco stein
Tuco tuco steinTuco tuco stein
Tuco tuco stein
 

Similar to Validator

Sonarjenkins ajip
Sonarjenkins ajipSonarjenkins ajip
Sonarjenkins ajip
Makarand Bhatambarekar
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium Successfully
Dave Haeffner
 
XML Pipelines
XML PipelinesXML Pipelines
XML Pipelines
Stylus Studio
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
Sauce Labs
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
Antonio García-Domínguez
 
Run around Chrome Inspector
Run around Chrome Inspector Run around Chrome Inspector
Run around Chrome Inspector
Tiang Cheng
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
koppenolski
 
Acceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvmAcceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvm
Christopher Bartling
 
Dom parser
Dom parserDom parser
Dom parser
sana mateen
 
Introduction to Solr
Introduction to SolrIntroduction to Solr
Introduction to Solr
Erik Hatcher
 
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Lucidworks
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
ESUG
 
Schema tools-and-trics-and-quick-intro-to-clojure-spec-22.6.2016
Schema tools-and-trics-and-quick-intro-to-clojure-spec-22.6.2016Schema tools-and-trics-and-quick-intro-to-clojure-spec-22.6.2016
Schema tools-and-trics-and-quick-intro-to-clojure-spec-22.6.2016
Metosin Oy
 
Quickly and Effectively Testing Legacy c++ Code with Approval Tests mu cpp
Quickly and Effectively Testing Legacy c++ Code with Approval Tests   mu cppQuickly and Effectively Testing Legacy c++ Code with Approval Tests   mu cpp
Quickly and Effectively Testing Legacy c++ Code with Approval Tests mu cpp
Clare Macrae
 
Expert selenium with core java
Expert selenium with core javaExpert selenium with core java
Expert selenium with core java
Ishita Arora
 
Validating Xml
Validating XmlValidating Xml
Validating Xml
LiquidHub
 
06.1 .Net memory management
06.1 .Net memory management06.1 .Net memory management
06.1 .Net memory management
Victor Matyushevskyy
 
SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016
Alex Theedom
 
End to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeEnd to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) Europe
Alexandre Morgaut
 
Simplify integrations-final-pdf
Simplify integrations-final-pdfSimplify integrations-final-pdf
Simplify integrations-final-pdf
Christian Posta
 

Similar to Validator (20)

Sonarjenkins ajip
Sonarjenkins ajipSonarjenkins ajip
Sonarjenkins ajip
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium Successfully
 
XML Pipelines
XML PipelinesXML Pipelines
XML Pipelines
 
How to Use Selenium, Successfully
How to Use Selenium, SuccessfullyHow to Use Selenium, Successfully
How to Use Selenium, Successfully
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
Run around Chrome Inspector
Run around Chrome Inspector Run around Chrome Inspector
Run around Chrome Inspector
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
 
Acceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvmAcceptance Test-driven Development with Cucumber-jvm
Acceptance Test-driven Development with Cucumber-jvm
 
Dom parser
Dom parserDom parser
Dom parser
 
Introduction to Solr
Introduction to SolrIntroduction to Solr
Introduction to Solr
 
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
Challenges of Simple Documents: When Basic isn't so Basic - Cassandra Targett...
 
VA Smalltalk Update
VA Smalltalk UpdateVA Smalltalk Update
VA Smalltalk Update
 
Schema tools-and-trics-and-quick-intro-to-clojure-spec-22.6.2016
Schema tools-and-trics-and-quick-intro-to-clojure-spec-22.6.2016Schema tools-and-trics-and-quick-intro-to-clojure-spec-22.6.2016
Schema tools-and-trics-and-quick-intro-to-clojure-spec-22.6.2016
 
Quickly and Effectively Testing Legacy c++ Code with Approval Tests mu cpp
Quickly and Effectively Testing Legacy c++ Code with Approval Tests   mu cppQuickly and Effectively Testing Legacy c++ Code with Approval Tests   mu cpp
Quickly and Effectively Testing Legacy c++ Code with Approval Tests mu cpp
 
Expert selenium with core java
Expert selenium with core javaExpert selenium with core java
Expert selenium with core java
 
Validating Xml
Validating XmlValidating Xml
Validating Xml
 
06.1 .Net memory management
06.1 .Net memory management06.1 .Net memory management
06.1 .Net memory management
 
SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016
 
End to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) EuropeEnd to-end W3C - JS.everywhere(2012) Europe
End to-end W3C - JS.everywhere(2012) Europe
 
Simplify integrations-final-pdf
Simplify integrations-final-pdfSimplify integrations-final-pdf
Simplify integrations-final-pdf
 

Recently uploaded

HYPERTENSION - SLIDE SHARE PRESENTATION.
HYPERTENSION - SLIDE SHARE PRESENTATION.HYPERTENSION - SLIDE SHARE PRESENTATION.
HYPERTENSION - SLIDE SHARE PRESENTATION.
deepaannamalai16
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
GeorgeMilliken2
 
Electric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger HuntElectric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger Hunt
RamseyBerglund
 
Pharmaceutics Pharmaceuticals best of brub
Pharmaceutics Pharmaceuticals best of brubPharmaceutics Pharmaceuticals best of brub
Pharmaceutics Pharmaceuticals best of brub
danielkiash986
 
Nutrition Inc FY 2024, 4 - Hour Training
Nutrition Inc FY 2024, 4 - Hour TrainingNutrition Inc FY 2024, 4 - Hour Training
Nutrition Inc FY 2024, 4 - Hour Training
melliereed
 
Geography as a Discipline Chapter 1 __ Class 11 Geography NCERT _ Class Notes...
Geography as a Discipline Chapter 1 __ Class 11 Geography NCERT _ Class Notes...Geography as a Discipline Chapter 1 __ Class 11 Geography NCERT _ Class Notes...
Geography as a Discipline Chapter 1 __ Class 11 Geography NCERT _ Class Notes...
ImMuslim
 
MDP on air pollution of class 8 year 2024-2025
MDP on air pollution of class 8 year 2024-2025MDP on air pollution of class 8 year 2024-2025
MDP on air pollution of class 8 year 2024-2025
khuleseema60
 
A Visual Guide to 1 Samuel | A Tale of Two Hearts
A Visual Guide to 1 Samuel | A Tale of Two HeartsA Visual Guide to 1 Samuel | A Tale of Two Hearts
A Visual Guide to 1 Samuel | A Tale of Two Hearts
Steve Thomason
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
EduSkills OECD
 
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
EduSkills OECD
 
REASIGNACION 2024 UGEL CHUPACA 2024 UGEL CHUPACA.pdf
REASIGNACION 2024 UGEL CHUPACA 2024 UGEL CHUPACA.pdfREASIGNACION 2024 UGEL CHUPACA 2024 UGEL CHUPACA.pdf
REASIGNACION 2024 UGEL CHUPACA 2024 UGEL CHUPACA.pdf
giancarloi8888
 
Haunted Houses by H W Longfellow for class 10
Haunted Houses by H W Longfellow for class 10Haunted Houses by H W Longfellow for class 10
Haunted Houses by H W Longfellow for class 10
nitinpv4ai
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
imrankhan141184
 
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.pptLevel 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Henry Hollis
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
haiqairshad
 
How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17
Celine George
 
Bonku-Babus-Friend by Sathyajith Ray (9)
Bonku-Babus-Friend by Sathyajith Ray  (9)Bonku-Babus-Friend by Sathyajith Ray  (9)
Bonku-Babus-Friend by Sathyajith Ray (9)
nitinpv4ai
 
Benner "Expanding Pathways to Publishing Careers"
Benner "Expanding Pathways to Publishing Careers"Benner "Expanding Pathways to Publishing Careers"
Benner "Expanding Pathways to Publishing Careers"
National Information Standards Organization (NISO)
 
Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47
MysoreMuleSoftMeetup
 
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
TechSoup
 

Recently uploaded (20)

HYPERTENSION - SLIDE SHARE PRESENTATION.
HYPERTENSION - SLIDE SHARE PRESENTATION.HYPERTENSION - SLIDE SHARE PRESENTATION.
HYPERTENSION - SLIDE SHARE PRESENTATION.
 
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
What is Digital Literacy? A guest blog from Andy McLaughlin, University of Ab...
 
Electric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger HuntElectric Fetus - Record Store Scavenger Hunt
Electric Fetus - Record Store Scavenger Hunt
 
Pharmaceutics Pharmaceuticals best of brub
Pharmaceutics Pharmaceuticals best of brubPharmaceutics Pharmaceuticals best of brub
Pharmaceutics Pharmaceuticals best of brub
 
Nutrition Inc FY 2024, 4 - Hour Training
Nutrition Inc FY 2024, 4 - Hour TrainingNutrition Inc FY 2024, 4 - Hour Training
Nutrition Inc FY 2024, 4 - Hour Training
 
Geography as a Discipline Chapter 1 __ Class 11 Geography NCERT _ Class Notes...
Geography as a Discipline Chapter 1 __ Class 11 Geography NCERT _ Class Notes...Geography as a Discipline Chapter 1 __ Class 11 Geography NCERT _ Class Notes...
Geography as a Discipline Chapter 1 __ Class 11 Geography NCERT _ Class Notes...
 
MDP on air pollution of class 8 year 2024-2025
MDP on air pollution of class 8 year 2024-2025MDP on air pollution of class 8 year 2024-2025
MDP on air pollution of class 8 year 2024-2025
 
A Visual Guide to 1 Samuel | A Tale of Two Hearts
A Visual Guide to 1 Samuel | A Tale of Two HeartsA Visual Guide to 1 Samuel | A Tale of Two Hearts
A Visual Guide to 1 Samuel | A Tale of Two Hearts
 
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxBeyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptx
 
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
Andreas Schleicher presents PISA 2022 Volume III - Creative Thinking - 18 Jun...
 
REASIGNACION 2024 UGEL CHUPACA 2024 UGEL CHUPACA.pdf
REASIGNACION 2024 UGEL CHUPACA 2024 UGEL CHUPACA.pdfREASIGNACION 2024 UGEL CHUPACA 2024 UGEL CHUPACA.pdf
REASIGNACION 2024 UGEL CHUPACA 2024 UGEL CHUPACA.pdf
 
Haunted Houses by H W Longfellow for class 10
Haunted Houses by H W Longfellow for class 10Haunted Houses by H W Longfellow for class 10
Haunted Houses by H W Longfellow for class 10
 
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
Traditional Musical Instruments of Arunachal Pradesh and Uttar Pradesh - RAYH...
 
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.pptLevel 3 NCEA - NZ: A  Nation In the Making 1872 - 1900 SML.ppt
Level 3 NCEA - NZ: A Nation In the Making 1872 - 1900 SML.ppt
 
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skillsspot a liar (Haiqa 146).pptx Technical writhing and presentation skills
spot a liar (Haiqa 146).pptx Technical writhing and presentation skills
 
How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17How Barcodes Can Be Leveraged Within Odoo 17
How Barcodes Can Be Leveraged Within Odoo 17
 
Bonku-Babus-Friend by Sathyajith Ray (9)
Bonku-Babus-Friend by Sathyajith Ray  (9)Bonku-Babus-Friend by Sathyajith Ray  (9)
Bonku-Babus-Friend by Sathyajith Ray (9)
 
Benner "Expanding Pathways to Publishing Careers"
Benner "Expanding Pathways to Publishing Careers"Benner "Expanding Pathways to Publishing Careers"
Benner "Expanding Pathways to Publishing Careers"
 
Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47Mule event processing models | MuleSoft Mysore Meetup #47
Mule event processing models | MuleSoft Mysore Meetup #47
 
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
Elevate Your Nonprofit's Online Presence_ A Guide to Effective SEO Strategies...
 

Validator

  • 1. The XCRI-CAP 1.2 Validator Presented by Craig Hawker
  • 2. Pre-reqs! Hopefully everyone already knows about these…! • Wiki: http://www.xcri.org/wiki/ (then click 1.2 specification) • KB: http://www.xcri.co.uk/ (specifically the Course Data Programme area) • Forum: http://www.xcri.org/forum/
  • 3. What does it (validation) aim to do? Feed quality and consistency! It is important to note that you will need exposure to both the XCRI-CAP 1.2 standard (via the wiki) and the Data Definitions and Vocabulary documents (via the website) to create a feed which validates!
  • 4. How does it work? XML structural issues: • Nesting XML Validation • Namespace declarations • Character literals • … XML document structure: • Correct element capitalisation XML Schema Validation • Correct element namespaces • Simple element content validation • … Everything else: • URL/Email/Telephone/etc. validation Rule-based Validation • Element lengths • Data Definitions Document rules • …
  • 5. What feedback do I get? • A summary of issues Exceptions broken down by severity • Issues grouped by severity then issue Warnings • “Helpful” text • Drill-down into line and character information (if Recommendations available)
  • 6. Hints and Tips • Start with small XML snippets (e.g. a single course) then work upwards to a full catalog • If you have problems then use the XCRI forum: http://www.xcri.org/forum • Some issues require manual checking • Remember that validation is iterative • Bear in mind that element order is important (for validation, NOT the spec)
  • 7. How do I use it? By far the easiest way is to use the online version at http://validator.xcri.co.uk. This way you get any bug fixes or rule base alterations immediately… ...however the project is open-source and you can download it all from http://code.google.com/p/xcricap-validator/ (.NET 4.0, written in C#).

Editor's Notes

  1. Hi, my name’s Craig Hawker and I’m here to give you an overview of the XCRI-CAP 1.2 Validator. You’ll all be glad to know that this is going to be very brief. I’m purposefully not going to dig deep into specifics but I’m sure people will have questions – some might already – so I’m around all day. I’m also doing a “validator surgery” outside after this until lunch. If anyone’s signed up, that is!I’m a software developer and I’ve been involved with XCRI-CAP for a couple of years now. I initially got involved by creating a feed for a local college, then started getting involved in providing tooling around XCRI-CAP 1.1 for the community. This resulted in the .NET XCRI-CAP Generator Library and the online XCRI-CAP 1.1 validator. Since then I’ve also been involved with XCRI-CAP 1.2 and am the primary developer of the XCRI-CAP 1.2 Validator, which is what we’re going to have a brief look at today.We’re going to, very quickly, go over:Pre-reqsWhat the validator aims to do and whyHow the validator works – at a very high levelWhat feedback you get out of the validatorSome hints and tips for using the validatorWhere the validator is and how you can get at itAn example of an issue identified by the validator and the process involved in resolving the issueAnd then that’s it. If anyone has any questions then I’m here all day and/or you can contact me using the details at the end of the presentation.
  2. Okay, before we get started it’s best that I highlight a few pre-requisites. Hopefully everyone already knows about these but I’ll include them just in case.The wiki is where the XCRI-CAP 1.2 specification lives. It contains information on the elements, their namespaces, and information about how and where they should be used. It also contains links across to the sample schema files which, whilst not being part of the specification, are something you should be aware of and probably reference.The knowledgebase contains a huge amount of supplementary information around XCRI but the main bit I would say to focus on is the Course Data Programme area. This area contains the data definition documents which further refine elements that are mandatory and expected as part of this process.Finally: if you have any questions then the forum’s a great resource. There’s also the mailing list but that’s closed-access and, unless someone happens to be signed up when you send that email, there’s a chance it’ll not help other institutions. If it’s a question that you think would benefit others, I would recommend trying to use the forum.
  3. When the XCRI-CAP 1.2 standard was completed, JISC recognised that it was important to ensure that the quality and consistency of the feeds produced under their guidance was high. This includes both from the perspective of technical validity but also with respect to the content that the feeds contained.In combination with the Data Definitions and Vocabulary documents – available via the website – the validator aims to help drive the quality and consistency of feeds produced by the JISC-funded Course Data Programme. It’s important to note that you will need access to both the XCRI-CAP 1.2 specification (the wiki) and the Data Definitions and Vocabulary documents (on the website) in order to produce a valid feed.
  4. The validator works in three ways. Each of these do separate checks and they aim to pretty much build upon each other.Firstly, the system checks that the file is structurally-sound XML. This identifies things such as incorrect tag nesting, issues with undeclared namespace prefixes, that kind of thing. Any issues that are found are run through a “translator” to get a helpful error message rather than an obscure one from the XML subsystem.Secondly, the system checks that the file is valid according to the XML Schemas. XML Schemas declare what the structure of a document is – what elements from what namespaces are allowed, how many of them, etc. XML Schema documents for XCRI-CAP 1.2 have been made available through the XCRI.co.uk website and these schemas will be used by default. You CAN override those schemas by referencing others within your feed using schemaLocation – for expansion, for example – but this isn’t recommended as it may lead to inconsistencies in the feeds. However, it will respect them if you do.Then, thirdly, the system checks that the file is valid according to a rule-base which has been developed. This additional level of validation is required firstly because XML Schema is limited in some of the things it can express, but secondly because the XML Schema files only contain the XCRI-CAP 1.2 specification, NOT the additional rules from within the Data Definitions Document. In my experience so far, this is where some people have become unstuck. If you don’t have the data definitions and vocabulary framework documents then get them and read through. They’re available in a couple of different formats depending upon what’s easiest for your team to use.
  5. So, once you’ve validated a feed, what do you end up with? We’ll go and do a couple of examples in a minute (assuming the connectivity works) but basically:You get a summary of issues, broken down by severity. There are three severities of issues: Exceptions, Warnings and Recommendations:Exceptions consist of structural issues (incorrect elements, casing issues, namespaces, some formatting…)Warnings consist of less important issues, but issues that should still be corrected (elements that shouldn’t be used, potential truncation of elements, some formatting)Recommendations consist of the issues that you should highly consider resolving, or that require manual checkingYou can click on each severity and get more information on the issues.Issues are then shown, one for each rule or exception that was encountered. So if you have 100 elements that contain a date formatted the wrong way, you only get a single line shown up. As most feeds will be generated by some code, this is likely to only be a single fix that’s required.For every issue or exception that’s encountered, the text is parsed and converted into something which is more usable, if it can. This will often include links out to the wiki or references back into the Data Definitions Document for further information, as well as guidance on fixing the issue.For every issue or exception that’s encountered, you can choose to click and drill down into more information including the line and character information if that’s exposed by the XML subsystem during validation.
  6. “Start with small XML snippets”For example: start with a root <catalog /> element and a single provider within it. This will allow you to test most of your namespace prefixes, as well as identifying formatting for elements like telephone numbers, without having to deal with lots of issues caused by courses. Once you’ve got that validating (aside from the exception about there being no courses…!), add a single course. Then a single presentation. And so on. Once you have a validating feed, use that as a template for the XML your Course Management System is to produce.“Use the forum”Despite the best efforts of everyone involved, there’s always the possibility that you find an issue with the validator, don’t understand the exception text that’s being raised, or have an issue with one of the rules being run. If that’s the case then raise the issue on the XCRI forum. It’s not the most heavily utilised but you’ll find a lot of technical people check it on a fairly-frequent basis.“Manual checking”There are a couple of rules within the rulebase that may require you to manually check. These are rules that we can’t currently programmatically check. These include things like “only use the contributor element when other refinements are not available”, or “producers should use URLs for identifiers that also resolve to human-readable content”. You need to check these and disregard the issue as appropriate.“Validation is iterative”That’s a very important point. The validator itself uses xpath to identify elements to check the rules against. You can’t run a file through the validator, fix the issues, and assume it’s then fine. You need to check it again. A good example is a feed that contains a <presentation /> element within the wrong namespace. The validator will highlight the namespace issue but, because the namespace is incorrect, it won’t then run the <presentation /> validation rules on its contents.
  7. I think that’s the waffle out the way. This is the important part: how do you get at it?The easiest way is to use the online version at http://validator.xcri.co.uk. All you need to do is go there with a web browser and either point it at a publically-available URL for your feed or, if it’s in development, paste in your XML file, and it’ll validate. The advantage of this is that if there’re any bug fixes or changes to the rulebase, or anything like that, you’ll get them automatically.That said, the project is open-source and can be downloaded from the Google Code repository you can see up there. It’s a Mercurial repository so you’ll need a Mercurial client. It’s a .NET 4.0 application written in C# so you’ll probably need Visual Studio 2010 (or 2012 if you’re really up to date) to use it. If anyone wants to make changes and push them back then catch me later and I can add you as a contributor.However, the only real reason I think that people will want to do that is if they want to include the validation code as part of a CI process or something similar; MOST people should just use the online version.