<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="../sch/tei_all_LEMDO.rng" type="application/xml" schematypens="http://relaxng.org/ns/structure/1.0"?>
<?xml-model href="../sch/tei_all_LEMDO.rng" type="application/xml" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xml:id="learn_schematronErrors">
   <teiHeader>
      <fileDesc>
         <titleStmt>
            <title type="main">Schematron and Validation Errors</title>
            <respStmt xml:id="odd_HOUL3_wtm">
               <resp ref="#wtm">Technical Writer</resp>
               <name ref="#HOUL3">Navarra Houldin</name>
            </respStmt>
            <respStmt xml:id="odd_GALL2_pfr">
               <resp ref="#pfr">Proofreader</resp>
               <name ref="#GALL2">Mahayla Galliford</name>
            </respStmt>
            <respStmt>
               <resp ref="#pdr">Project Director</resp>
               <name ref="#JENS1">Janelle Jenstad</name>
            </respStmt>
            <respStmt>
               <resp ref="#wtm">Project Manager</resp>
               <name ref="#GALL2">Mahayla Galliford</name>
            </respStmt>
            <respStmt>
               <resp ref="#wtm">Training and Documentation Lead</resp>
               <name ref="#HOUL3">Navarra Houldin</name>
            </respStmt>
            <respStmt>
               <resp ref="#prg">Programmer</resp>
               <name ref="#HOLM1">Martin Holmes</name>
            </respStmt>
            <respStmt>
               <resp ref="#prg">Programmer</resp>
               <name ref="#TAKE1">Joey Takeda</name>
            </respStmt>
            <respStmt>
               <resp ref="#prg">Junior Programmer</resp>
               <name ref="#ELHA1">Tracey El Hajj</name>
            </respStmt>
            <sponsor ref="#LEMD1"/>
            <funder>Social Sciences and Humanities Research Council of Canada</funder>
         </titleStmt>
         <editionStmt>
            <p>Released with Linked Early Modern Drama Online 1.0</p>
         </editionStmt>
         <publicationStmt>
            <publisher>University of Victoria on the Linked Early Modern Drama Online Platform</publisher>
            <availability>
               <licence from="2023-12-10" resp="#JENS1" corresp="lemdo.xml"/>
               <p>This file is licensed under a <ref target="https://creativecommons.org/licenses/by-nc-nd/4.0/">CC BY-NC_ND 4.0 license</ref>, which means that it is freely downloadable without permission under the following conditions: (1) credit must be given to the author and LEMDO in any subsequent use of the files and/or data; (2) the content cannot be adapted or repurposed (except in quotations for the purposes of academic review and citation); and (3) commercial uses are not permitted without the knowledge and consent of the editor and LEMDO. This license allows for pedagogical use of the documentation in the classroom.</p>
            </availability>
         </publicationStmt>
         <seriesStmt>
            <p>Linked Early Modern Drama Online</p>
         </seriesStmt>
         <sourceDesc>
            <p>TEI Customization created by <name ref="#HOLM1">Martin Holmes</name>, <name ref="#TAKE1">Joey Takeda</name>, and <name ref="#JENS1">Janelle Jenstad</name>; documentation written by members of the <name ref="#LEMD1">LEMDO Team</name>
            </p>
         </sourceDesc>
      </fileDesc>
      <profileDesc copyOf="#">
         <textClass>
            <catRef scheme="#emdDocumentTypes" target="TAXO1.xml#ldtBornDigDocumentation"/>
            <catRef scheme="#emdDocumentTypes" target="TAXO1.xml#ldtBornDig"/>
         </textClass>
      </profileDesc>
      <tei:encodingDesc xmlns:tei="http://www.tei-c.org/ns/1.0">
         <p>Encoded in TEI P5 according to the LEMDO Customization and Encoding Guidelines</p>
         <editorialDecl>
            <p>n/a</p>
         </editorialDecl>
         <tei:constraintDecl scheme="schematron" queryBinding="xslt2">
            <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                    prefix="tei"
                    uri="http://www.tei-c.org/ns/1.0"/>
            <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                    prefix="xs"
                    uri="http://www.w3.org/2001/XMLSchema"/>
            <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                    prefix="rng"
                    uri="http://relaxng.org/ns/structure/1.0"/>
            <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                    prefix="rna"
                    uri="http://relaxng.org/ns/compatibility/annotations/1.0"/>
            <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                    prefix="sch"
                    uri="http://purl.oclc.org/dsdl/schematron"/>
            <sch:ns xmlns:sch="http://purl.oclc.org/dsdl/schematron"
                    prefix="sch1x"
                    uri="http://www.ascc.net/xml/schematron"/>
         </tei:constraintDecl>
         <classDecl>
            <taxonomy copyOf="TAXO1.xml#emdDocumentTypes" xml:id="emdDocumentTypes">
               <desc>
                  <term>Document Types</term>
                  <gloss>All documents in LEMDO are either <soCalled>born-digital</soCalled>
                     documents or <soCalled>primary</soCalled> documents. Within those two general
                     categories, LEMDO offers additional ways to categorize a file.</gloss>
               </desc>
               <category copyOf="TAXO1.xml#ldtBornDig" xml:id="ldtBornDig">
                  <catDesc>
                     <term>Born-digital</term>
                     <gloss>Born-digital documents are anything other than primary texts</gloss>
                  </catDesc>
                  <category copyOf="TAXO1.xml#ldtBornDigDocumentation"
                            xml:id="ldtBornDigDocumentation">
                     <catDesc>
                        <term>Documentation</term>
                        <gloss>Encoding and editorial guidelines; programming, processing, and
                           rendering instructions; how-to instructions; element descriptions; and
                           records of remediation.</gloss>
                     </catDesc>
                  </category>
               </category>
            </taxonomy>
            <taxonomy copyOf="TAXO1.xml#emdRespTaxonomy" xml:id="emdRespTaxonomy">
               <desc>
                  <term>Responsibilities</term>
                  <gloss>Responsibilities</gloss>
               </desc>
               <category copyOf="TAXO1.xml#pdr"
                         xml:id="pdr"
                         corresp="http://id.loc.gov/vocabulary/relators/pdr.html">
                  <catDesc>
                     <term>Project Director</term>
                     <gloss type="marc">A person or organization with primary responsibility for all
                        essential aspects of a project, has overall responsibility for managing
                        projects, or provides overall direction to a project manager.</gloss>
                     <gloss type="emd">LEMDO uses the term project director for the person who
                        directs the LEMDO project. For anthology leads, use pbd.</gloss>
                  </catDesc>
               </category>
               <category copyOf="TAXO1.xml#pfr"
                         xml:id="pfr"
                         corresp="http://id.loc.gov/vocabulary/relators/pfr.html">
                  <catDesc>
                     <term>Proofreader</term>
                     <gloss type="marc">A person who corrects printed matter.</gloss>
                     <gloss type="emd">LEMDO uses the term proofreader for the person who performs
                        minor corrections to a finalized document, which usually include
                        typographical or rendering fixes. For copy-editing, use
                           <soCalled>resp:edt_cpy</soCalled>.</gloss>
                  </catDesc>
               </category>
               <category copyOf="TAXO1.xml#prg"
                         xml:id="prg"
                         corresp="http://id.loc.gov/vocabulary/relators/prg.html">
                  <catDesc>
                     <term>Programmer</term>
                     <gloss type="marc">A person, family, or organization responsible for creating a
                        computer program.</gloss>
                     <gloss type="emd">Gloss needed.</gloss>
                  </catDesc>
               </category>
               <category copyOf="TAXO1.xml#wtm"
                         xml:id="wtm"
                         corresp="http://id.loc.gov/vocabulary/relators/wtm.html">
                  <catDesc>
                     <term>Technical Writer</term>
                     <gloss type="marc">Writer of Technical Material: A person responsible for
                        writing or compiling documentation of the project’s editorial, encoding, and
                        programming practices.</gloss>
                  </catDesc>
               </category>
            </taxonomy>
         </classDecl>
      </tei:encodingDesc>
      <revisionDesc status="prgGenerated">
         <change who="#HOLM1" when="2026-03-20">Automatically generated this file by 
                        extracting its content from lemdo.lite.odd.</change>
      </revisionDesc>
   </teiHeader>
   <standOff>
      <listPerson>
         <person xml:id="ELHA1" copyOf="PERS1.xml#ELHA1">
            <persName>
               <reg>Tracey El Hajj</reg>
               <forename>Tracey</forename>
               <surname>El Hajj</surname>
            </persName>
            <note>
               <p>Junior Programmer 2019–2020. Research Associate 2020–2021. Tracey received her PhD from the Department of English at the University of Victoria in the field of Science and Technology Studies. Her research focuses on the <term>algorhythmics</term> of networked communications. She was a 2019–2020 President’s Fellow in Research-Enriched Teaching at UVic, where she taught an advanced course on <title level="a">Artificial Intelligence and Everyday Life.</title> Tracey was also a member of the <title level="m">Map of Early Modern London</title> team, between 2018 and 2021. Between 2020 and 2021, she was a fellow in residence at the Praxis Studio for Comparative Media Studies, where she investigated the relationships between artificial intelligence, creativity, health, and justice. As of July 2021, Tracey has moved into the alt-ac world for a term position, while also teaching in the English Department at the University of Victoria.</p>
            </note>
         </person>
         <person xml:id="GALL2" copyOf="PERS1.xml#GALL2">
            <persName>
               <reg>Mahayla Galliford</reg>
               <forename>Mahayla</forename>
               <surname>Galliford</surname>
            </persName>
            <note>
               <p>Project manager, 2025-present; research assistant, 2021-present. Mahayla Galliford (she/her) graduated with a BA (Hons with distinction) from the University of Victoria in 2024. Mahayla’s undergraduate research explored early modern stage directions and civic water pageantry. Mahayla continues her studies through UVic’s English MA program and her SSHRC-funded thesis project focuses on editing and encoding girls’ manuscripts, specifically Lady Rachel Fane’s dramatic entertainments, in collaboration with LEMDO.</p>
            </note>
         </person>
         <person xml:id="HOLM1" copyOf="PERS1.xml#HOLM1">
            <persName>
               <reg>Martin Holmes</reg>
               <forename>Martin</forename>
               <surname>Holmes</surname>
            </persName>
            <note>
               <p>Martin Holmes has worked as a developer in the UVic’s Humanities Computing and Media Centre for over two decades, and has been involved with dozens of Digital Humanities projects. He has served on the TEI Technical Council and as Managing Editor of the Journal of the TEI. He took over from Joey Takeda as lead developer on LEMDO in 2020. He is a collaborator on the SSHRC Partnership Grant led by Janelle Jenstad.</p>
            </note>
         </person>
         <person xml:id="HOUL3" copyOf="PERS1.xml#HOUL3">
            <persName>
               <reg>Navarra Houldin</reg>
               <forename>Navarra</forename>
               <surname>Houldin</surname>
            </persName>
            <note>
               <p>Training and Documentation Lead 2025–present. LEMDO project manager 2022–2025. Textual remediator 2021–present. Navarra Houldin (they/them) completed their BA with a major in history and minor in Spanish at the University of Victoria in 2022. Their primary research was on gender and sexuality in early modern Europe and Latin America. They are continuing their education through an MA program in Gender and Social Justice Studies at the University of Alberta where they will specialize in Digital Humanities.</p>
            </note>
         </person>
         <person xml:id="JENS1" copyOf="PERS1.xml#JENS1">
            <persName>
               <reg>Janelle Jenstad</reg>
               <forename>Janelle</forename>
               <surname>Jenstad</surname>
            </persName>
            <note>
               <p>Janelle Jenstad is a Professor of English at the University of Victoria, Director of <ref target="https://mapoflondon.uvic.ca">The Map of Early Modern London</ref>, and Director of <ref target="https://lemdo.uvic.ca">Linked Early Modern Drama Online</ref>. With Jennifer Roberts-Smith and Mark Beatrice Kaethler, she co-edited <title level="m">Shakespeare’s Language in Digital Media: Old Words, New Tools</title> (Routledge). She has edited John Stow’s <title level="m">A Survey of London</title> (1598 text) for MoEML and is currently editing <title level="m">The Merchant of Venice</title> (with Stephen Wittek) and Heywood’s <title level="m">2 If You Know Not Me You Know Nobody</title> for DRE. Her articles have appeared in <title level="j">Digital Humanities Quarterly</title>, <title level="j">Elizabethan Theatre</title>, <title level="j">Early Modern Literary Studies</title>, <title level="j">Shakespeare Bulletin</title>, <title level="j">Renaissance and Reformation</title>, and <title level="j">The Journal of Medieval and Early Modern Studies</title>. She contributed chapters to <title level="m">Approaches to Teaching Othello</title> (MLA); <title level="m">Teaching Early Modern Literature from the Archives</title> (MLA); <title level="m">Institutional Culture in Early Modern England</title> (Brill); <title level="m">Shakespeare, Language, and the Stage</title> (Arden); <title level="m">Performing Maternity in Early Modern England</title> (Ashgate); <title level="m">New Directions in the Geohumanities</title> (Routledge); <title level="m">Early Modern Studies and the Digital Turn</title> (Iter); <title level="m">Placing Names: Enriching and Integrating Gazetteers</title> (Indiana); <title level="m">Making Things and Drawing Boundaries</title> (Minnesota); <title level="m">Rethinking Shakespeare Source Study: Audiences, Authors, and Digital Technologies</title> (Routledge); and <title level="m">Civic Performance: Pageantry and Entertainments in Early Modern London</title> (Routledge). For more details, see <ref target="https://janellejenstad.com/">janellejenstad.com</ref>.</p>
            </note>
         </person>
         <person xml:id="TAKE1" copyOf="PERS1.xml#TAKE1">
            <persName>
               <reg>Joey Takeda</reg>
               <forename>Joey</forename>
               <surname>Takeda</surname>
            </persName>
            <note>
               <p>Joey Takeda is LEMDO’s Consulting Programmer and Designer, a role he assumed in 2020 after three years as the Lead Developer on LEMDO.</p>
            </note>
         </person>
      </listPerson>
      <listOrg>
         <org xml:id="LEMD1" copyOf="ORGS1.xml#LEMD1">
            <orgName>
               <reg>LEMDO Team</reg>
            </orgName>
            <note>The LEMDO Team is based at the University of Victoria and normally comprises the project director, the lead developer, project manager, junior developers(s), remediators, encoders, and remediating editors.</note>
         </org>
      </listOrg>
      <list type="glossary">
         <item xml:id="SCHE3" copyOf="GLOSS1.xml#SCHE3">
            <label>schema</label>
            <gloss>A schema is a set of rules governing the use of TEI elements in a particular project. XML languages are all governed by a small set of shared principles; any document that follows these principles, even if it makes up its own elements, is well-formed XML. TEI is a formal language that is designed to comply with the principles of XML. TEI offers many elements and attributes in its XML-compliant language. But most projects still need to <emph>customize</emph> the TEI for their own purposes, by prescribing how and where TEI elements and attributes are to be used, precluding some elements and attributes, making other elements and attributes optional, making child elements required or optional, and defining allowed and required values for attributes. The schema captures the project’s requirements, prohibitions, and standards. We use a RelaxiNG schema at LEMDO. The main schema for LEMDO is lemdo-all.rng (where the .rng file extension indicates the schema type). The schema is responsible for generating the error messages in Oxygen when encoders break one or more of the rules associated with it. (Read more about schemas in the <ref target="https://tei-c.org/release/doc/tei-p5-doc/en/html/SG.html#SG14">TEI Guidelines</ref>.)</gloss>
         </item>
         <item xml:id="SCHE2" copyOf="GLOSS1.xml#SCHE2">
            <label>Schematron</label>
            <gloss>Schematron is an open-source language for ensuring that certain patterns are present in XML documents. For example, it can insist upon certain spellings, enforce curly apostrophes, and limit the use of elements to specific contexts. It is the <soCalled>feather duster</soCalled> of an XML project. See <ref target="https://www.schematron.com/home/overview.html">An Overview of Schematron</ref>.</gloss>
         </item>
      </list>
   </standOff>
   <text>
      <body>
         <div ana="audRepoUser audEncoder audRemediator">
            <div xmlns:lemdo="http://hcmc.uvic.ca/lemdo/ns" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:teix="http://www.tei-c.org/ns/Examples" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xml:id="learn_schematronErrors_prior">
               <head>Prior Reading</head>
               <list rend="bulleted">
                  <item>
                     <title level="a"><ref target="learn_repoIntro.xml">The LEMDO Platform and Repository</ref></title>
                  </item>
                  <item>
                     <title level="a"><ref target="learn_validate.xml">Validate Files</ref></title>
                  </item>
               </list>
            </div>
            <div xmlns:lemdo="http://hcmc.uvic.ca/lemdo/ns" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:teix="http://www.tei-c.org/ns/Examples" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xml:id="learn_schematronErrors_intro">
               <head>Introduction</head>
               <p>
                  <term ref="#SCHE2">Schematron</term> is the language that LEMDO uses to write rules specific to LEMDO’s encoding. <term ref="#SCHE2">Schematron</term>, alongside our <term ref="#SCHE3">schema</term>, ensures that encoding is consistent and correct throughout the LEMDO project. If your encoding does not follow one of the Schematron rules that we have written, then you will get a <term>validation error</term>. This will prompt you to go back and correct your encoding. It is important that you fix validation errors as soon as you get them.</p>
               <p>If you commit an invalid file, it will <soCalled>break the build</soCalled>. This means that our Jenkins Continuous Integration Server is unable to finish <soCalled>serving up</soCalled> a new version of the LEMDO-dev website. When the build is broken, nobody can see the work that they have recently committed rendered in HTML. If you inadvertently break the build, a member of the LEMDO team will contact you so that you can fix the error causing the build break.</p>
               <p>If there is an error that is frequently occurring that is not currently prevented by Schematron, we will write a new Schematron rule in the ODD file (<ident>lemdo.odd</ident>). You must <code>svn up</code> regularly to ensure that you get any new Schematron rules that we add.</p>
            </div>
            <div xmlns:lemdo="http://hcmc.uvic.ca/lemdo/ns" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:teix="http://www.tei-c.org/ns/Examples" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xml:id="learn_schematronErrors_checkValidity">
               <head>Step-by-Step: Check Validity</head>
               <list rend="numbered">
                  <item>Click the validation button at the top of your Oxygen window (it resembles a piece of paper with a checkmark on it).</item>
                  <item>Check for the validation message at the bottom of your Oxygen window. It will say either <quote>Validation successful</quote> or <quote>Document contains errors</quote>.</item>
                  <item>If your validation is successful, you can either continue working or save and commit your file.</item>
                  <item>If your validation is not successful, you must fix the error. Never commit an invalid file.</item>
               </list>
               <p>For more detailed instructions for validating a file, see <title level="a"><ref target="learn_validate.xml">Validate Files</ref></title>.</p>
            </div>
            <div xmlns:lemdo="http://hcmc.uvic.ca/lemdo/ns" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:teix="http://www.tei-c.org/ns/Examples" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xml:id="learn_schematronErrors_fixValidationErrors">
               <head>Practice: Fix Validation Errors</head>
               <p>To fix a validation error, look at the error message at the bottom of your Oxygen window. In most cases, we have written instructions for how to fix Schematron errors. For example, if you have a straight apostrophe in your file, you will get an error message that says: <quote>ERROR: Straight apostrophes are not allowed in text. Use curly apostrophes instead. The shortcut to add a curly apostrophe is ctrl+shift+’ (on PC or Unix) and command+shift+’ (on iOS).</quote>
               </p>
               <p>If you are unable to see the entire message because it is cut off, you can pull up a window with the full message by double clicking on the message text.</p>
               <p>If you are unable to fix the error yourself, contact the <ref target="mailto:lemdo@uvic.ca">LEMDO team</ref> for help. Do not commit your file while it is invalid.</p>
            </div>
         </div>
      </body>
   </text>
</TEI>
