Validate Files

Prior Reading

This documentation assumes that you have installed Oxygen and have learned how to use it:

Rationale

A valid file is one that conforms to all the rules set out in the LEMDO schema. Our processors are expecting specific elements, attributes, and values in specific contexts. They also expect xml:ids to be unique, all elements to have opening and closing tags, and all elements to be hierarchically nested. If your file is not valid when you commit it to the repository, our processors will not be able to generate a stable build of the LEMDO development site (lemdo-dev). Sorting out a build break takes time. While the UVic team is fixing the break, people can commit to the repository but will not be able to see updated versions of their files on the lemdo-dev site.
The error messages that pop up when you make an encoding error are designed to help you encode your work correctly. The error messages are written by the LEMDO team and are designed to guide you as you encode. When you validate a file, Oxygen will give you a list of all the errors in the file along with error messages. The list will help you see if there is a pattern to the errors, or if all the errors stem from a single error high up in the document hierarchy.

Good Practice

Validate often! You want to validate your file frequently while you work and fix any encoding errors as they arise. If you carry on working in an invalid file, you will compound errors to the point where it can be very difficult to identify and repair the original error.
Benefits of validating often:
You will make fewer minor errors.
You will almost always avoid major errors.
You will spend less time correcting the mistakes you do make.
You will get lots of validation.
If you accidentally commit an invalid file, you can prevent or remedy a build break by fixing your file and then committing the valid version of your file.

Step-by-Step

To validate your file, click on the button that resembles a piece of paper with a checkmark on it (or Ctrl+Alt+Shift+V):

                           The Oxygen validation button
If your file is valid, you will see a reassuring validation message like this at the bottom of your window:

                           An Oxygen message with a green square to the left reads: Validation successful
If you see something like this message instead, stop editing immediately and fix the errors in your file:

                           An Oxygen message with a red square to the left reads: Document contains errors: 3
When validation fails, you will see a report in a new panel at the bottom of Oxygen. Each error is listed on a separate line in the report, along with an error message. To go directly to the point in the file where Oxygen has identified an error, click on the item in the list of errors. You will see text and/or markup flagged with a squiggly red line. In most cases, the squiggly red line is the point in the file where you need to make your fix.
However, the error report will not always point to the spot where you need to implement a correction. For instance, you may see something like this message:

                           Message from Oxygen reads: The element type "ref" must be terminated by the matching end-tag "less than / ref greater than".
In this case, the schema is telling you that you have added an opening <ref> element somewhere in your file but have failed to add the corresponding closing </ref> tag. Oxygen cannot tell you where you need to put the closing <ref> tag because it has no way of knowing the end point of the passage from which you want to link.

Tips

Here are some strategies for finding errors in invalid files:
Check that the file is well-formed (i.e., your file adheres to the syntax rules set out in the XML specification). Navigate to Document in the toolbar, click on Validate, and click on Check Well-Formedness.
Undo recent changes by typing Ctrl+Z. Oxygenʼs undo history is typically set to remember the last 200 changes, so you can look back through many changes to find when and where the error was introduced.
Cut out sections of your file, paste each of them in a separate temporary file, and validate each temporary file to find the section that is making your file invalid.
Above all, do not start editing again until you have a valid document.

Further Reading

Once you have a valid file, you will be able to commit the file to the repository. The next logical piece of documentation to read is therefore Commit Files.

Prosopography

Janelle Jenstad

Janelle Jenstad is a Professor of English at the University of Victoria, Director of The Map of Early Modern London, and Director of Linked Early Modern Drama Online. With Jennifer Roberts-Smith and Mark Kaethler, she co-edited Shakespeare’s Language in Digital Media: Old Words, New Tools (Routledge). She has edited John Stow’s A Survey of London (1598 text) for MoEML and is currently editing The Merchant of Venice (with Stephen Wittek) and Heywood’s 2 If You Know Not Me You Know Nobody for DRE. Her articles have appeared in Digital Humanities Quarterly, Elizabethan Theatre, Early Modern Literary Studies, Shakespeare Bulletin, Renaissance and Reformation, and The Journal of Medieval and Early Modern Studies. She contributed chapters to Approaches to Teaching Othello (MLA); Teaching Early Modern Literature from the Archives (MLA); Institutional Culture in Early Modern England (Brill); Shakespeare, Language, and the Stage (Arden); Performing Maternity in Early Modern England (Ashgate); New Directions in the Geohumanities (Routledge); Early Modern Studies and the Digital Turn (Iter); Placing Names: Enriching and Integrating Gazetteers (Indiana); Making Things and Drawing Boundaries (Minnesota); Rethinking Shakespeare Source Study: Audiences, Authors, and Digital Technologies (Routledge); and Civic Performance: Pageantry and Entertainments in Early Modern London (Routledge). For more details, see janellejenstad.com.

Joey Takeda

Joey Takeda is LEMDO’s Consulting Programmer and Designer, a role he assumed in 2020 after three years as the Lead Developer on LEMDO.

Martin Holmes

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.

Navarra Houldin

Project manager 2022–present. Textual remediator 2021–present. Navarra Houldin (they/them) completed their BA in History and Spanish at the University of Victoria in 2022. During their degree, they worked as a teaching assistant with the University of Victoriaʼs Department of Hispanic and Italian Studies. Their primary research was on gender and sexuality in early modern Europe and Latin America.

Nicole Vatcher

Technical Documentation Writer, 2020–2022. Nicole Vatcher completed her BA (Hons.) in English at the University of Victoria in 2021. Her primary research focus was womenʼs writing in the modernist period.

Rylyn Christensen

Rylyn Christensen is an English major at the University of Victoria.

Tracey El Hajj

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 algorhythmics of networked communications. She was a 2019–2020 President’s Fellow in Research-Enriched Teaching at UVic, where she taught an advanced course on Artificial Intelligence and Everyday Life. Tracey was also a member of the Map of Early Modern London 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.

Orgography

LEMDO Team (LEMD1)

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.

Glossary

schema
“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 customize 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 TEI Guidelines.)”
validate
“The process you run in Oxygen to check files for errors.”

Metadata