This collection of pages provides documentation and encoding examples for the authors and editors of the front-end HTML pages for the Beck Lecture Series project using XHTML5 as the primary data encoding format. It was originally derived from the XHTML5-as-ODD project schema.
The Beck Lecture Series website keeps an ongoing record of the lecturers who have been invited to UVic to deliver presentations on Icelandic literature and culture. This is an Endings-compliant HTML-based project maintained by the Humanities Computing and Media Centre at the University of Victoria.
First you will need to learn How to use Subversion (SVN) to check out the repository, update your local copy, and commit your changes.
If youʼre working as an encoder on this project, youʼll need to edit several different types of file:
content/beck_travel_award.xml
. The beck_
prefix denotes a site landing page.content/visit_2024_deusen_natalie.xml
, with the prefix signifying that this is the main record of a specific scholarʼs
visit in a particular year. See Encoding visits for detailed instructions.content/people.xml
. In this file, each <li> element contains the biographical information for a single person, who may be the
project lead, programmer, encoder (i.e. yourself), or one of the scholars who has
visited to give lectures. These entries look like this:
We keep all our XML files and related documents in a Subversion Repository. This is a version-control system that ensures that every version of every file can be retrieved if necessary, and prevents one person from inadvertently overwriting changes to a file made by someone else.
Subversion runs on one of our HCMC servers, which is at hcmc.uvic.ca/svn
. In order to use it, you will need to install a Subversion client on your computer,
and also learn a couple of simple command-line commands. Subversion is usually abbreviated
to ‘svn’.
If you are working on a computer in HCMC, Subversion will already be installed. If you are working on a different computer, such as your own laptop, you will have to install it.
How you will do this depends on which operating system you are using.
Obtain a command-line client from SilkSVN. There is no cost to download the client. Make sure to download the correct version; there are versions for 32-bit and 64-bit Windows. Once the program is downloaded, install it by double-clicking the downloaded installer and following its instructions.
Installing svn on Mac has become slightly complicated recently because Apple have removed it from their XCode toolset. We now have to install it using Homebrew, which is a package manager for the Mac. Here are the steps:
Command-V)
The Homebrew install process takes a little while. When it completes, go back to the terminal and type this:
brew install svn⚓
When svn is installed, test it by typing:
svn --version⚓
in the terminal. You should see lots of mysterious information, but the first thing should be the svn version number which is now installed on your machine.
Subversion is installed as part of a regular desktop on most Linux distributions.
If it is not, you can simply type sudo apt install subversion
or the equivalent command for your Linux distribution.
Once your subversion client is installed, the first thing we need to do is to check out the repository. To do this, you need to open a terminal window:
cmd
into the search box.Terminal
from the Utilities
folder in Applications
.Control + Alt + T
.Now we'll check that svn is installed and working. Type svn checkout
and press return. If the terminal responses that there are Not enough arguments provided
, then svn is working OK.
And now we'll check out the files from the repository into our home directory, using this command:
svn checkout https://hcmc.uvic.ca/svn/beck⚓
The first thing you might see is a question about accepting a certificate. Basically,
your computer is saying ‘I don't know this server you're asking me to connect to. Should I trust it?’ The answer is yes (of course); you should type p
to accept the certificate permanently so you don't have to answer this question every
time you connect. This may not happen, though.
Then the server should ask for your netlink user name and password. After that, you should see the files download to your drive.
These are the basic rules when you're working with svn:
Before you start work, update your local files:
You can leave the terminal open while you work. Then, when you're ready to commit your changes:
svn update⚓(again, just in case anything else has been committed by someone else)
svn commit content -m "A message explaining the changes you have made"⚓
(Aside: we include ‘content’ after the word ‘commit’ to specify that we only want to commit any changes that are in the content
folder. That way, if we've accidentally made changes to program code or other files
in the repo, those changes won't be committed.)
That's basically it. If you see any warnings or error messages from svn, check that you're in the right folder in your terminal. You may also see error messages if two people have been editing the same file at the same time, and Subversion needs you to make a decision about whose changes should be kept.
Your encoding work will all be done in the Oxygen XML Editor. When you install Oxygen, there are lots of applications that come with it: Oxygen Author, Oxygen Developer, Compare Files, Compare Directories and others. But the one you want to work with is always Oxygen XML Editor, which has the blue icon with the red cross on it. Here's how to get started:
beck
folder in your home directory.beck.xpr
.You should see a tree of folders and files down the left of your Oxygen editor. This
includes all the files in the project. You can ignore most of them. The folder that
matters is the content
folder, where all the articles are kept.
Our Oxygen project file has a number of useful keyboard shortcuts built into it, which you can use to speed up your encoding. Generally speaking, to use these, you select some text in the editor, then press the keystroke shortcut shown in the table below. The table uses the following key names:
M1 | represents the Command key on MacOS X, and the Ctrl key on other platforms. |
M2 | represents the Shift key. |
M3 | represents the Option key on MacOS X, and the Alt key on other platforms. |
M4 | represents the Ctrl key on MacOS X, and is undefined on other platforms. |
The following table shows keyboard shortcuts available when the beck.xpr
project file is loaded.
Name | Description | Result | Keystroke |
3-em dash | Enter a 3-em dash (used for repeated authors in bibliography) | ⸻ | M1 M2 3 |
Article title | Tag an article or chapter title, removing existing quote marks | <span data-nametype="articleTitle">${xpath_eval(replace('${selection}', '[“”]', ''))}</span> | M1 M2 A |
Curly apostrophe | Enter a curly apostrophe (02BC), which is required in place of the straight one | ʼ | M1 M2 QUOTE |
Ellipsis | Enter ellipsis character | … | M1 M2 PERIOD |
Em dash | Enter an em dash | — | M1 M2 MINUS |
En dash | Enter an en dash (use for page numbers etc.) | – | M1 M2 N |
Foreign text | Foreign text intended to be italicized in the output. | <span class="foreign">${selection}</span> | M1 M2 F |
Journal title | Tag a title as a journal title (for academic journals, periodicals, newspapers etc.) | <span data-nametype="periodicalTitle">${selection}</span> | M1 M2 J |
Monograph title | Tag a title as a monograph title (book, film, play, etc.) | <span data-nametype="monographTitle">${selection}</span> | M1 M2 M |
Person's forename(s) | Tag one or more forenames inside a name | <span data-nametype="forename">${selection}</span>${caret} | M1 M3 M2 F |
Person's name | Tag a person's name, and link it to their bio. | <a data-nametype="persName" href="people.xml#${caret}">${selection}</a> | M1 M3 M2 N |
Person's name without link | Tag a person's name, and link it to their bio. | <span data-nametype="persName">${selection}</span> | M1 M3 M2 P |
Person's surname | Tag a person's surname, usually inside their name | <span data-nametype="surname">${selection}</span> | M1 M3 M2 S |
Poem title | Tags a poem title to be rendered with quote marks, removing literal quote marks. | <span data-nametype="poemTitle">${xpath_eval(replace('${selection}', '[“”]', ''))}</span> | M1 M2 P |
Poem title (italic) | Tag a person's name, and link it to their bio. | <span data-nametype="italicPoemTitle">${selection}</span> | M1 M2 I |
Quotation | Tags an inline quotation, removing quote marks. | <q>${xpath_eval(replace('${selection}', '[“”"]', ''))}</q> | M1 M2 Q |
Song title | Tags a song title to be rendered with quote marks, removing literal quote marks. | <span data-nametype="songTitle">${xpath_eval(replace('${selection}', '[“”]', ''))}</span> | M1 M2 S |
The files containing content for web pages are in the content
folder. These consist of:
images
folder)people.xml
file, which contains brief biographies of each of the lecturers, and anyone else
mentioned on the site.figures.xml
file, which contains a list of pre-configured HTML <figure> elements, each one containing a graphic along with other information such as a caption.
These are inserted into pages wherever they are needed during the site build.beck_*.xml
), which are information and listing pages that appear on the site.These are the main tasks you will need to carry out to maintain the site.
The next visit from a scholar will first be announced on the Upcoming Events
page. The information will be provided by the current coordinator of the lectures,
usually many months in advance of the visit. The page is very simple, and if itʼs
currently empty, previous entries should have been preserved as comments, to show
you how to encode information about the lectures. Add/edit the information in this
file, then publish the site. The same file may require multiple updates as details of the visit, locations for
lectures, and so on are firmed up.
Once one or more lectures have taken place during an academicʼs visit, you can begin to create the page recording the visit. You will be provided with all the information you need by the lecture coordinator. These are the components you will need:
people.xml
file. If so, just update their record appropriately. If they donʼt yet appear in
the file, just create a new record following the examples of all the other entries,
and make sure it has a unique id.Upcoming Eventspage.
First, create the visit file, by combining the prefix visit_
with the year and the name of the presenter (surname_forename), following the model
of the other files in the contents
folder. Add this to the svn repository.
Next, add all the details of the presentations by this person, again following the model of existing visits. Use the most recent ones as your model. Donʼt add the links to media files yet.
Next, refer to the section Handling media files to prepare and upload the media files to the server.
Then, add links in the visit file to the media files you have uploaded.
When everything is complete, you can publish the site.
All media files are stored on our web server in the becklectures
account, in the www
folder.
Inside that folder, each visit gets its own folder, named exactly the same as the visit file. So you will need to create a folder for any new visit, following this model. Then name the media files appropriately, also based on the visit file name, with some additional descriptive text at the end of the filename to differentiate the files. So you may see, for example, a folder like this:
As long as you follow this model, linking will be easy.
Publishing the site takes several steps. Treat the following as a release checklist, and make sure all the steps are completed. You will need the credentials for the becklectures user on the file server, and of course Ant and rsync must be installed on your computer.
ant⚓in the project folder. Make sure that any new links to media files you have created are working.
ant beckRsyncToLiveServer⚓This will publish the pages to the server, and clear out any old content that is obsolete (such as staticSearch index files), but will leave the media file intact. This involves two rsync operations, so you may be asked for the credentials twice.
site
folder, and store it somewhere safe. This will enable you to restore the site quickly
if something goes wrong.This style guide is always growing. Please add anything that may be important. For
now, this is a preliminary idea of the style guide. Rules that are questioned or unconfirmed
are labeled as under review.
Resources |
Canadian Oxford Dictionary (2 ed.) |
Special Symbols |
European diacritics (Æ, æ, Á, á, [Ð], ð, É, é, Í, í, Ó, ó, Ö, ö, Þ, Ú, ú, Ý, ý) |
Dates and Numbers |
February 2, 2002 2002-02-02 (YYYY-MM-DD) 1300, 1985, 2001, etc. AD 900 BUT 900 AD if used in a sentence/paragraph with ### BC; 900 CE, 100 BCE ALSO ACCEPTABLE 1906–1909 1880s 3:00 p.m. chapter 48 28 Marlborough Street $6,000 spell out numbers if it can be expressed in less than three words [unless otherwise stated] one hundred BUT 2,500 10 per cent thirty-seven eighty-year-old one out of eight OR one-eighth [refer to ordinals below] spell out ordinals [except when otherwise stated] Seventeenth Annual, twenty-fifth anniversary eighteenth-century literature the nineteenth century third-generation Icelandic immigarant King Frederick III one-third 10 FINGERS Leviticus 18:6–18 [1] for in-text footnotes. 1. at the footnote. |
Format |
italicize books, films, periodicals by using the following tag:
<span data-nametype="monographTitle">Chaos and Love: The Philosophy of the Icelandic Family Sagas</span> See the att.hasnametype documentation for the full list of values available.quote articles, chapters, poems using the following tag:
<span data-nametype="articleTitle">The Structure of Old Norse dróttkvætt Poetry</span> Again, see the att.hasnametype documentation for the full list of values available.initial capitalization but no period for bullet points title case for headers and English titles but sentence case for Icelandic titles (such as movies and books) MLA text citations Canadian spelling for English words italicize words in foreign languages. [Icelandic words = under review] quote words when referred to as words; do not quote and italicize (due to foreign language): choose one. capitalize hyphenated compounds in title case. Second-Generation, Sex-Ratio |
Punctuation |
oxford comma en-dash for number ranges em-dash with no spaces for interrupters |
Abbreviations |
all abbreviations without periods (PhD, MA, BA, Dr, St [for Saint], BC) EXCEPT when a shortened form comprises only the first letters of a word (Rev., Hon., Prof., Jan.) AND Latin or scholarly abbreviations with lowercase letters (p. and pp. for page and pages, e.g., i.e., etc., p.m., vs., ch.) spell out universities, departments, and organizations (University of Victoria [sometimes UVic], Humanities Computing and Media Centre) PhD, MA, BA, rather than D.Phil, M.Phil, cand.mag [under review] space out name abbreviations (J. R. R. Tolkien) spell course codes out (in normal body or listing); capitalize course code in irregular cases Enlgish, Medieval Studies ENGL, MEDI spell out measurements: kilometre, centimetre, mile |
A |
academic director [n] adjunct professor OR Adjunct Professor [under review; title or noun?] Adjunct Professor of Religious Studies in the Department of History & Classics [Natalie Van Deusen refers to herself with capitalization in her bio at UofA] administrator Advisor [title] the Althing [English] the Alþingi [Icelandic] Ambassador (of the Embassy of Iceland) AND Sony Global Imaging Ambassador [title] the American Folklore Society Anglo-Icelandic [n, adj] Áns saga bogsveigs the Arnamagnæan Commission assistant professor (at the University of Akureyri) [n] [under review] Associate Dean of Humanities Associate Professor (of the Department of Linguistics) OR affiliate associate professor of the Department of Anthropology [under review; title or noun?] |
B |
BA Bandamanna saga BC (British Columbia) BC Centennial the Beck Lecture Series (on Icelandic Literature) [under review; can vary] bedridden behaviour NOT behavior Belgsdalsbók Best International Feature Film [award] Biblical [adj] the bishop BUT Bishop Brynjólfur Bjatur publishing house blood feud The Blue Fox [novel] Book of Icelanders Book of Settlements Breiðafjörður [place] Breta sögur British-Icelandic brother-in-law |
C |
catalogue [Canadian spelling, NOT catalog] the cathedral CDs [pl] centre (n, adj) Chair (of the Department of Anthropology) [title] [under review] chairman (of many societies) [n] chockablock Christmas Eve Classical [adj] Classical Arabic co-founded, co-screenwriter, co-wrote, co-sponsored The Common [periodical] The Complete Sagas of Icelanders I–V [book] computer-generated the Concise Icelandic-English Dictionary criticize [Canadian spelling] cross-disciplinary |
D |
data editor [n] Dean (of the Faculty of Human and Social Development) [title] death penalty [n] Department of Medieval Studies OR Language and Literature Department EXCEPT departments of English and History in Art deputy manager (of language services for VANOC) [n] Deputy Provost [title] the Devil Director (of the Reykjavík Academy; of the Medieval Studies Program) [title] [under review] EXCEPT director of the Folklore Archive AND the director at the Iceland Music History AND director (of a film) Divine Providence: The Wreck and Rescue of the Julia Ann [book] DNA donor Dot Dot Comma Dash [film] Dr [title] |
E |
early Middle Ages Early Modern (economic history) Editor [title] EXCEPT an editor (at Bjatur publishing house) [n] Egils saga [Old Norse] there are other variations [under review] Eiríks saga rauða Elucidarius the Embassy of Iceland Encyclopædia Britannica [book] English Honours [program] ex-professor extra-texual BUT intertextual Eyrbyggja saga |
F |
Faculty of Education, Faculty of Languages and Cultures fall [as in autumn] farmer-scribes Federation of Icelandic Artists Fellow [under review; title or noun?] EXCEPT fellow (of three learned societies) Flateyjarbók [MS] Flóamanna saga Folklore Archive (later National Folklore Collection) folk song NOT folksong Fósbræðra saga |
G |
General Editor [title] ghost-child Gísla saga Súrssonar God-knows-how-many golden age Göngu-Hrólfs saga The Governor General’s Gold Medal Award [award] Graduate Awards Committee Grágás [law codex] great-aunt, great-grandmother, great-grandson, etc. Grettis saga [Icelandic and Old Norse] other varaitions [under review] grey NOT gray grown-up |
H |
Hænsna-Þóris saga hand-copy half-sister, half-brother Hallfreðar saga Hávarðar saga Ísfirðings harbour [Canadian spelling] Harðar saga og Hólmverja Háskóli Íslands Haukadalur [place] Hauksbók Head OR head (of the English Department) [under review; title or noun?] Heiðreks saga Henry Cabot and Linnea Lodge Scandinavian Professorship Historia regum Britanniae historicization [Canadian spelling] homily Honorius Agustodunensis honourary consul honourary doctorates honourary doctor of literature degree OR Honourary Doctor of Literature Degree honourary fellow OR Honourary Fellow OR honorary [under review; title or noun?; Canadian spelling?] honourary professor OR Honourary Professor OR honorary [under review; title or noun?; Canadian spelling?] Humanities Computing and Media Centre hurdy-gurdy [n] |
I |
Iceland Music History Museum Icelanders Icelandic Association of Northern California Icelandic-Canadian [n, adj] Icelandic Institute the Icelandic Institute Film Festival Icelandic Republic Icelandic National Broadcasting (RÚV) The Icelandic Herritage [book title] Icelandic National League of North America the Icelandic River Icelandic River Saga [book title] Icelandic Settlers in America [book title] i.e. Ilias Latina instructor Interdisciplinary PhD the Interlake the International Congress on Medieval Studies International Director [title] [Margaret Willson bio on the University of Washington website capitalizes] I Remember You [film] Íslendingabækur (Book of Icelanders) [under review; italicize or no?] Íslendingabók (also: Book of Icelanders) [under review; italicize or no?] |
J |
Johns Hopkins Writing Seminars Jónsbók [MS, lawbook] Journal of Canadian Fiction [periodical] journeys [pl. n] judge [n] [the position] |
K |
the king BUT King Frederick III kingsʼ sagas Kjalnesinga saga Knitting with Icelandic Wool [book] Kópavogur Kormáks saga Kristni saga Kuldi [film] Kyrtill |
L |
Lamb [film] Landnámabók (the Book of Settlements Late Norse law-speaker lay people/person BUT layman/laymen lawbook Laxdæla saga lecturer [n] Leif Erikson League Libellus Islandorum (Book of Icelanders) Literary History of Iceland [book] Ljárskógabók The Lord of the Rings [film] The Hobbit [film] |
M |
MA The Margaret and Richard Beck Fund (OR Beck Fund) [under review] Margaret and Richard Beck Lectures (OR Beck Lectures) [under review] mean-spirited the Medieval Academy of America medieval (embroidery) metre INSTEAD OF meter MFA mid-Atlantic, mid-sentence Middle Ages [n] Middle Dutch millennium mini-series [n] MP3 modern-day modern English the Modern Language Association Moonstone – The Boy Who Never Was [novel] Mormon multicultural The Music of Failure [book] |
N |
National Folklore Collection (previously Folklore Archive) native-speaker-approach [n] neighbour and neighbourhood [Canadian spelling] newborn [n, adj] New Iceland New International Version New World NGO (non-governmental organization) Njáls saga [Icelandic] BUT Njalʼs Saga [English] AND Njalʼs Saga [book] there are most likely other variations non-ghost, non-native, non-digital normalize, normalized, normalization [Canadian spelling] Northern Europe |
O |
Office of the President Old High German Old Norse Old Saxon Orion Visitor Fund the Oscarʼs The Outlaw: The Saga of Gísli Súrsson [film] over-identify |
P-Q |
paper-manuscripts [n] part-time [adj, adv] per cent the pastor BUT Pastor Jon Erlendsson Peysufot PhD the Pilgrims OR Father Pilgrims Plácidus saga Poetic Edda post-medieval, post-Gutenberg BUT postwar pre-existence prehistory [n] President (of the University of Victoriaʼs Faculty Associaton) [title] presidential elections of Iceland printing press producer prophecy [n] prophesy [v] professor OR Professor [all accounts below are under review]
program NOT programme Project Director [title] project leader or Project Leader [under review; noun or title?] project programmer [n] Prose Edda Protestant |
R |
realize, realized, realization [Canadian spelling] re-establish BUT retell Resenian (codex) rímur [n] roman [text style] Roman [from Rome] Romantic, Romanticism, etc. [literary movement, era] Royal Antiquarian Royal Danish Archives the Red House [art gallery] the Reformation Reporter of the Year [award/title] Reykjavík The Reykjavík Academy Icelandic National Broadcasting (RÚV) |
S-T/Þ-U |
saga [n] sagas of Icelanders and family sagas [genre] Njalʼs Saga [English title] Njals saga [Icelandic title] Njalʼs saga [n; not a title] The Saga of the People of Laxardal and Bolli Bollason’s Tale [book] Sagan Landnama um fyrstu bygging Islands af Nordmönnum Schedæ Ara prests fróða (the Book of Icelanders) Scottish Society for Northern Studies Scriptorium Scripture [Biblical] Seawomen of Iceland: Survival on the Edge [book] self-expression Senate Committee on Awards servant-girl shape-changer, shape-shifter Siglufjörður, saga bæjar (Siglufjörður, the story of a town) [tv series] short-lived Skautbuningur Snæfellsnes the Society for the Advancement of Scandinavian Study so-called speech-act (theory) [adj] BUT speech acts [n] Staðarfellsbók stepdaughter Stjörnu Odda draumur [short story] Stóridómur [an extensive legislation on sexual matters] storytelling, storyteller Strengleikar subgroup BUT sub-genre [OCD 2ed.] superintendent Supreme Court (of Iceland) theorize, theorized, theorization, theorizing [Canadian spelling] Þingvellir third-generation [adj] Þorsteins þáttur bæjarmagns [short story] Traditional Icelandic Embroidery [book] travel, travelled, travelling, traveller [Canadian spelling] Trójumanna saga university University Librarian [noun or title?; under review] University of Lyon II University of Paris IV Sorbonne University of Victoria OR UVic [since we are familiar with our own university] University of Victoria Library OR UVic Library Upphlutur |
V-W-X-Y-Z |
Vancouver Organizing Comittee for the 2010 Olympic and Paralympic Winter Games (VANOC) Vatnsdæla saga Vatnsdalur Vatnshornsbók Vatnshyrna [lost MS] Vatnshyrna-like BUT catlike, childlike [-like is hyphenated, but closed if found in OCD 2ed the Victoria International Film Festival Viking Viking Age The Vikings and the Victorians: Inventing the Old North in Nineteenth-century Britain [book title] The Vinland Sagas [book] Visitor Fund vs. (as in versus) volcanoes [Canadian spelling] Völsunga saga [Icelandic] Volsunga Saga [English] twenty-volume (collection) 2017 Washington State Nonfiction Book of the Year [award] well informed well-known well-travelled [adj] Western Europe wind-storms wordplay workload working methods NOT working-methods [n] work-study [adj] worldwide [adj] worthwhile yes-or-no (answer) [adj] YouTube |
Misc. |
10 FINGERS [theatre group] departments, programs, and faculties capitalized
|
<a> | |||||||||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||||||||
Module | beck | ||||||||||||
Attributes |
|
||||||||||||
Member of |
model.beckPhrase
|
||||||||||||
Contained by |
beck: a aside blockquote button caption cite code em figcaption h2 h3 h4 li p q span strong
summary td th u
|
||||||||||||
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
||||||||||||
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
||||||||||||
Schema Declaration |
element a { xh_att.classable.attributes, xh_att.hasHref.attributes, xh_att.hasnametype.attributes, attribute title { text }?, attribute target { "_blank" }?, xh_macro.beckParaContent }⚓ |
<article> (The principal container element, containing block content) This is the root element for article documents. | |||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||
Module | beck | ||||||
Attributes |
|
||||||
Contained by |
beck: body main
|
||||||
May contain |
beck: aside audio blockquote button cite details dialog figure h2 img ol p pre section table
ul video
|
||||||
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <elementRef key="h2"/> <alternate minOccurs="1" maxOccurs="unbounded"> <macroRef key="macro.beckBlockContent"/> <elementRef key="section" minOccurs="1" maxOccurs="unbounded"/> </alternate> </sequence> </content> ⚓ |
||||||
Schema Declaration |
element article { xh_att.identifiable.attributes, xh_att.hasTitle.attributes, xh_att.hasDate.attributes, attribute data-shortname { text }?, ( xh_h2, ( xh_macro.beckBlockContent | xh_section+ )+ ) }⚓ |
<aside> (A portion of a document whose content is only indirectly related to the document's main content) The aside element encloses content which is tangentially related to the content around it. It is used for callouts, footnotes/endnotes, and similar content. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody
|
Contained by |
beck: article body details div section
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <alternate minOccurs="0" maxOccurs="unbounded"> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element aside { xh_att.classable.attributes, xh_att.identifiable.attributes, xh_att.hasTitle.attributes, ( xh_macro.beckParaContent | xh_br )* }⚓ |
<audio> The <audio> element provides an audio player to play an audio file specified in the child <source> element. | |||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||
Module | beck | ||||||
Attributes |
|
||||||
Member of |
model.beckBlockBody model.beckPhrase
|
||||||
Contained by |
beck: a article aside blockquote button caption cite code details div em figcaption h2 h3
h4 li p q section span strong summary td th u
|
||||||
May contain |
beck: source
|
||||||
Content model |
<content> <elementRef key="source" minOccurs="1" maxOccurs="unbounded"/> </content> ⚓ |
||||||
Schema Declaration |
element audio { xh_att.classable.attributes, xh_att.identifiable.attributes, attribute controls { "controls" }?, xh_source+ }⚓ |
<blockquote> Block quotation. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody
|
Contained by |
beck: article details div section
|
May contain |
beck: a audio br cite code em figcaption img p q span strong summary u ul video
character data
|
Content model |
<content> <alternate minOccurs="1" maxOccurs="unbounded"> <elementRef key="p"/> <elementRef key="ul"/> <elementRef key="br"/> <macroRef key="macro.beckParaContent"/> </alternate> </content> ⚓ |
Schema Declaration |
element blockquote { xh_att.classable.attributes, ( xh_p | xh_ul | xh_br | xh_macro.beckParaContent )+ }⚓ |
<body> (The principal container for page content as shown in the browser) In HTML5, the body element allows all flow content, but we are much more constrained here, allowing only block-level elements. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: html
|
May contain |
beck: article aside div main section
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <alternate minOccurs="0" maxOccurs="1"> <elementRef key="h1" minOccurs="1" maxOccurs="1"/> <elementRef key="header" minOccurs="1" maxOccurs="1"/> </alternate> <elementRef key="aside" minOccurs="0" maxOccurs="1"/> <alternate minOccurs="1" maxOccurs="1"> <elementRef key="div" minOccurs="1" maxOccurs="unbounded"/> <elementRef key="section" minOccurs="2" maxOccurs="unbounded"/> <elementRef key="main" minOccurs="1" maxOccurs="1"/> <elementRef key="article" minOccurs="1" maxOccurs="1"/> </alternate> <elementRef key="aside" minOccurs="0" maxOccurs="1"/> <elementRef key="footer" minOccurs="0" maxOccurs="1"/> </sequence> </content> ⚓ |
Schema Declaration |
element body { xh_att.classable.attributes, xh_att.identifiable.attributes, ( ( h1 | header )?, xh_aside?, ( xh_div+ | ( xh_section, xh_section, xh_section* ) | xh_main | xh_article ), xh_aside?, footer? ) }⚓ |
<br> A hard-coded linebreak. Avoid unless you absolutely need it. Use it at the end of lines in poems. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: aside blockquote em h2 h3 h4 li p q span u
|
May contain | Empty element |
Content model |
<content> <empty/> </content> ⚓ |
Schema Declaration |
element br { xh_att.classable.attributes, empty }⚓ |
<button> An HTML button element. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody
|
Contained by |
beck: article details div section
|
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
Schema Declaration |
element button { xh_att.classable.attributes, xh_att.identifiable.attributes, xh_att.hasTabindex.attributes, xh_macro.beckParaContent }⚓ |
<caption> A table caption. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Contained by |
beck: table
|
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
Schema Declaration |
element caption { xh_macro.beckParaContent }⚓ |
<cite> An HTML cite element | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody model.beckPhrase
|
Contained by |
beck: a article aside blockquote button caption cite code details div em figcaption h2 h3
h4 li p q section span strong summary td th u
|
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
Schema Declaration |
element cite { xh_att.classable.attributes, xh_att.identifiable.attributes, xh_macro.beckParaContent }⚓ |
<code> (Inline computer code, filenames etc.) Inline text which is computer code or similar text such as identifiers. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckPhrase
|
Contained by |
beck: a aside blockquote button caption cite code em figcaption h2 h3 h4 li p q span strong
summary td th u
|
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
Schema Declaration |
element code { xh_att.classable.attributes, xh_macro.beckParaContent }⚓ |
<details> Expandable details element with summary child. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody
|
Contained by |
beck: article details div section
|
May contain |
beck: aside audio blockquote button cite details dialog figure img ol p pre summary table
ul video
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <elementRef key="summary"/> <macroRef key="macro.beckBlockContent"/> </sequence> </content> ⚓ |
Schema Declaration |
element details { xh_att.classable.attributes, xh_att.identifiable.attributes, ( xh_summary, xh_macro.beckBlockContent ) }⚓ |
<dialog> An HTML dialog element | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody
|
Contained by |
beck: article details div main section
|
May contain |
beck: div figure p
|
Content model |
<content> <alternate minOccurs="1" maxOccurs="unbounded"> <elementRef key="p"/> <elementRef key="figure"/> <elementRef key="div"/> </alternate> </content> ⚓ |
Schema Declaration |
element dialog { xh_att.classable.attributes, xh_att.identifiable.attributes, ( xh_p | xh_figure | xh_div )+ }⚓ |
<div> (A division of the footer element or the search page.) The div may be the main child of the main element. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: body dialog div main
|
May contain |
beck: aside audio blockquote button cite details dialog div figure h3 h4 img ol p pre table
ul video
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <alternate minOccurs="1" maxOccurs="1"> <elementRef key="h3" minOccurs="0" maxOccurs="1"/> <elementRef key="h4" minOccurs="0" maxOccurs="1"/> </alternate> <alternate minOccurs="1" maxOccurs="unbounded"> <elementRef key="p"/> <elementRef key="div"/> <macroRef key="macro.beckBlockContent"/> </alternate> </sequence> </content> ⚓ |
Schema Declaration |
element div { xh_att.identifiable.attributes, xh_att.classable.attributes, ( ( xh_h3? | xh_h4? ), ( xh_p | xh_div | xh_macro.beckBlockContent )+ ) }⚓ |
<em> Emphasized text; will be rendered by default in italics. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckPhrase
|
Contained by |
beck: a aside blockquote button caption cite code em figcaption h2 h3 h4 li p q span strong
summary td th u
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <alternate minOccurs="0" maxOccurs="unbounded"> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element em { xh_att.classable.attributes, ( xh_macro.beckParaContent | xh_br )* }⚓ |
<figcaption> Caption for an image in a figure element. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckPhrase
|
Contained by |
beck: a aside blockquote button caption cite code em figcaption figure h2 h3 h4 li p q span
strong summary td th u
|
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
Schema Declaration |
element figcaption { xh_att.classable.attributes, xh_att.identifiable.attributes, xh_att.hasTabindex.attributes, xh_macro.beckParaContent }⚓ |
<figure> A figure consists of an image and a caption. | |||||||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||||||
Module | beck | ||||||||||
Attributes |
|
||||||||||
Member of |
model.beckBlockBody
|
||||||||||
Contained by |
beck: article details dialog div section
|
||||||||||
May contain |
beck: figcaption img p
|
||||||||||
Content model |
<content> <alternate minOccurs="1" maxOccurs="1"> <elementRef key="p" minOccurs="1" maxOccurs="unbounded"/> <sequence minOccurs="1" maxOccurs="1"> <elementRef key="img"/> <elementRef key="figcaption" minOccurs="0"/> </sequence> </alternate> </content> ⚓ |
||||||||||
Schema Declaration |
element figure { xh_att.classable.attribute.style, xh_att.identifiable.attributes, xh_att.hasTabindex.attributes, attribute class { list { ( "leftFloat" | "center" | "rightFloat" | "lightbox-figure" )+ } }?, ( xh_p+ | ( xh_img, xh_figcaption? ) ) }⚓ |
<h2> (Main page heading) The h2 (level 2 heading) element provides the heading for article content. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: article main
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Schematron |
<sch:rule context="xh:article[starts-with(@id, 'mod_')][count(descendant::xh:p) gt
1]/xh:h2">
<sch:assert test="descendant::xh:a[@href][@data-nametype='persName']">
The heading for a modern article must contain a link to the name of
its author.
</sch:assert>
</sch:rule>
|
Content model |
<content> <alternate minOccurs="1" maxOccurs="unbounded"> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element h2 { xh_att.classable.attributes, xh_att.hasTitle.attributes, ( xh_macro.beckParaContent | xh_br )+ }⚓ |
<h3> (Section heading) The h3 (level 3 heading) element provides the heading for sections (if any) inside the main element. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: div section
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <alternate minOccurs="1" maxOccurs="unbounded"> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element h3 { xh_att.classable.attributes, ( xh_macro.beckParaContent | xh_br )+ }⚓ |
<h4> (Section heading) The h4 (level 4 heading) element provides the heading for sections (if any) inside the main element. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: div
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <alternate minOccurs="1" maxOccurs="unbounded"> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element h4 { xh_att.classable.attributes, ( xh_macro.beckParaContent | xh_br )+ }⚓ |
<head> (The HTML head element) The head element contains links to (external-only) CSS and JS, as well as a title element and meta tags. We impose an order here which is not enforced by the HTML5 standard, placing the single title element first, followed by meta tags, CSS, and script. One of the meta tags must be a charset specification. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Contained by |
beck: html
|
May contain |
beck: meta title
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <elementRef key="title" minOccurs="1" maxOccurs="1"/> <elementRef key="meta" minOccurs="1" maxOccurs="unbounded"/> <elementRef key="link" minOccurs="0" maxOccurs="unbounded"/> <elementRef key="script" minOccurs="0" maxOccurs="unbounded"/> </sequence> </content> ⚓ |
Schema Declaration |
element head { xh_title, xh_meta+, link*, script* }⚓ |
<html> (The root html element for normal complete documents) The html element is only root element allowed for conventional HTML5 documents, but we also allow other block elements to serve as root for pragmatic reasons. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
—
|
May contain |
beck: body head
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <elementRef key="head"/> <elementRef key="body"/> </sequence> </content> ⚓ |
Schema Declaration |
element html { xh_att.identifiable.attributes, xh_att.hasLang.attributes, xh_att.classable.attributes, ( xh_head, xh_body ) }⚓ |
<img> Image element. May be rendered inline or as a block, depending on where it appears in the document structure. | |||||||||||||||||||||||||||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||||||||||||||||||||||||||
Module | beck | ||||||||||||||||||||||||||||||
Attributes |
|
||||||||||||||||||||||||||||||
Member of |
model.beckBlockBody model.beckPhrase
|
||||||||||||||||||||||||||||||
Contained by |
beck: a article aside blockquote button caption cite code details div em figcaption figure
h2 h3 h4 li p q section span strong summary td th u
|
||||||||||||||||||||||||||||||
May contain | Empty element | ||||||||||||||||||||||||||||||
Schematron |
<sch:rule context="xh:img">
<sch:assert test="@alt or following-sibling::xh:figcaption or ancestor::xh:ul[@class='gallery']">
If your img element is not inside a figure element with a figcaption,
then it requires the @alt attribute to provide help for visually-impaired users.
</sch:assert>
</sch:rule>
|
<li> Item in a list or a menu. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: ol ul
|
May contain |
beck: a audio br cite code em figcaption img ol p q span strong summary u ul video
character data
|
Content model |
<content> <alternate minOccurs="0" maxOccurs="unbounded"> <elementRef key="ul"/> <elementRef key="ol"/> <elementRef key="p"/> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element li { xh_att.classable.attributes, xh_att.identifiable.attributes, xh_att.hasDate.attributes, ( xh_ul | xh_ol | xh_p | xh_macro.beckParaContent | xh_br )* }⚓ |
<main> (The main element, containing block content) This is used as the root element for some content documents. This allows divs, dialogs, or articles in alternation. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: body
|
May contain |
beck: article dialog div h2
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <elementRef key="h2"/> <alternate minOccurs="1" maxOccurs="unbounded"> <elementRef key="div"/> <elementRef key="dialog"/> <elementRef key="article" maxOccurs="2"/> </alternate> <elementRef key="script" minOccurs="0" maxOccurs="unbounded"/> </sequence> </content> ⚓ |
Schema Declaration |
element main { xh_att.identifiable.attributes, xh_att.hasTitle.attributes, ( xh_h2, ( xh_div | xh_dialog | ( xh_article, xh_article? ) )+, script* ) }⚓ |
<meta> (The HTML meta element) This serves two purposes in our project: it provides the UTF-8 charset declaration, and it also provides information for staticSearch filters. | |||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||
Module | beck | ||||||
Attributes |
|
||||||
Contained by |
beck: head
|
||||||
May contain | Empty element | ||||||
Content model |
<content> <empty/> </content> ⚓ |
||||||
Schema Declaration |
element meta { attribute charset { "utf-8" }?, empty }⚓ |
<ol> Ordered list, usually numbered. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody
|
Contained by |
beck: article details div li section
|
May contain |
beck: li
|
Content model |
<content> <elementRef key="li" minOccurs="1" maxOccurs="unbounded"/> </content> ⚓ |
Schema Declaration |
element ol { xh_att.classable.attributes, xh_li+ }⚓ |
<p> Prose paragraph. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody
|
Contained by |
beck: article blockquote details dialog div figure li section
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <alternate minOccurs="0" maxOccurs="unbounded"> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element p { xh_att.classable.attributes, xh_att.identifiable.attributes, ( xh_macro.beckParaContent | xh_br )* }⚓ |
<pre> Preformatted text which is to be presented exactly as written in the HTML file. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Member of |
model.beckBlockBody
|
Contained by |
beck: article details div section
|
May contain | Character data only |
Content model |
<content> <textNode/> </content> ⚓ |
Schema Declaration |
element pre { text }⚓ |
<q> Inline quotation. In rendering, quotation marks will be supplied, so do not include them. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckPhrase
|
Contained by |
beck: a aside blockquote button caption cite code em figcaption h2 h3 h4 li p q span strong
summary td th u
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <alternate minOccurs="1" maxOccurs="unbounded"> <elementRef key="br"/> <macroRef key="macro.beckParaContent"/> </alternate> </content> ⚓ |
Schema Declaration |
element q { xh_att.classable.attributes, ( xh_br | xh_macro.beckParaContent )+ }⚓ |
<section> (A subsection of a page) If using sections, there must be at least two. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Contained by |
beck: article body
|
May contain |
beck: aside audio blockquote button cite details dialog figure h3 img ol p pre table ul
video
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <elementRef key="h3" maxOccurs="1"/> <macroRef key="macro.beckBlockContent"/> </sequence> </content> ⚓ |
Schema Declaration |
element section { xh_att.classable.attributes, xh_att.identifiable.attributes, ( xh_h3, xh_macro.beckBlockContent ) }⚓ |
<source> The <source> HTML element specifies one or more media resources for the, <audio> and <video> elements. | |||||||||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||||||||
Module | beck | ||||||||||||
Attributes |
|
||||||||||||
Contained by |
beck: audio video
|
||||||||||||
May contain | Empty element |
<span> General-purpose phrase-level element. Use only if there is no more specific alternative for what you want. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckPhrase
|
Contained by |
beck: a aside blockquote button caption cite code em figcaption h2 h3 h4 li p q span strong
summary td th u
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Schematron |
<sch:rule context="xh:span">
<sch:assert test="@class or @style or @data-nametype">
A span element must have a class attribute, a data-nametype attribute, or a style
attribute.
</sch:assert>
</sch:rule>
|
Content model |
<content> <alternate minOccurs="0" maxOccurs="unbounded"> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element span { xh_att.classable.attributes, xh_att.hasLang.attributes, xh_att.hasnametype.attributes, xh_att.hasDate.attributes, ( xh_macro.beckParaContent | xh_br )* }⚓ |
<strong> (Strong text) Text that needs to be highlighted because it is important; will be rendered by default in bold. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckPhrase
|
Contained by |
beck: a aside blockquote button caption cite code em figcaption h2 h3 h4 li p q span strong
summary td th u
|
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
Schema Declaration |
element strong { xh_att.classable.attributes, xh_macro.beckParaContent }⚓ |
<summary> Single-line summary for details element. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckPhrase
|
Contained by |
beck: a aside blockquote button caption cite code details em figcaption h2 h3 h4 li p q
span strong summary td th u
|
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
Schema Declaration |
element summary { xh_att.classable.attributes, xh_macro.beckParaContent }⚓ |
<table> A table. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckBlockBody
|
Contained by |
beck: article details div section
|
May contain |
beck: caption tr
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <elementRef key="caption" minOccurs="0" maxOccurs="1"/> <elementRef key="tr" minOccurs="1" maxOccurs="unbounded"/> </sequence> </content> ⚓ |
Schema Declaration |
element table { xh_att.classable.attributes, ( xh_caption?, xh_tr+ ) }⚓ |
<td> A table data cell. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Contained by |
beck: tr
|
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
Schema Declaration |
element td { xh_macro.beckParaContent }⚓ |
<th> A table label or heading cell. | |||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||
Module | beck | ||||||
Attributes |
|
||||||
Contained by |
beck: tr
|
||||||
May contain |
beck: a audio cite code em figcaption img q span strong summary u video
character data
|
||||||
Content model |
<content> <macroRef key="macro.beckParaContent"/> </content> ⚓ |
||||||
Schema Declaration |
element th { attribute scope { "col" | "row" }?, xh_macro.beckParaContent }⚓ |
<tr> A table row. | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Contained by |
beck: table
|
May contain |
beck: td th
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="unbounded"> <elementRef key="th" minOccurs="0" maxOccurs="unbounded"/> <elementRef key="td" minOccurs="0" maxOccurs="unbounded"/> </sequence> </content> ⚓ |
Schema Declaration |
element tr { ( xh_th*, xh_td* )+ }⚓ |
<u> Underlined text, in a context where we do not wish to conjecture why the underline is there (in an original article, or a quotation of an external source). | |
Namespace | http://www.w3.org/1999/xhtml |
Module | beck |
Attributes |
|
Member of |
model.beckPhrase
|
Contained by |
beck: a aside blockquote button caption cite code em figcaption h2 h3 h4 li p q span strong
summary td th u
|
May contain |
beck: a audio br cite code em figcaption img q span strong summary u video
character data
|
Content model |
<content> <alternate minOccurs="0" maxOccurs="unbounded"> <macroRef key="macro.beckParaContent"/> <elementRef key="br"/> </alternate> </content> ⚓ |
Schema Declaration |
element u { xh_att.classable.attributes, ( xh_macro.beckParaContent | xh_br )* }⚓ |
<ul> Unordered list, usually bulleted. | |||||||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||||||
Module | beck | ||||||||||
Attributes |
|
||||||||||
Member of |
model.beckBlockBody
|
||||||||||
Contained by |
beck: article blockquote details div li section
|
||||||||||
May contain |
beck: li
|
||||||||||
Content model |
<content> <elementRef key="li" minOccurs="1" maxOccurs="unbounded"/> </content> ⚓ |
||||||||||
Schema Declaration |
element ul { xh_att.classable.attribute.style, attribute class { list { + } }?, xh_li+ }⚓ |
<video> The <video> element provides a video player to play a video file specified in the child <source> element. | |||||||
Namespace | http://www.w3.org/1999/xhtml | ||||||
Module | beck | ||||||
Attributes |
|
||||||
Member of |
model.beckBlockBody model.beckPhrase
|
||||||
Contained by |
beck: a article aside blockquote button caption cite code details div em figcaption h2 h3
h4 li p q section span strong summary td th u
|
||||||
May contain |
beck: source
|
||||||
Content model |
<content> <elementRef key="source" minOccurs="1" maxOccurs="unbounded"/> </content> ⚓ |
||||||
Schema Declaration |
element video { xh_att.classable.attributes, xh_att.identifiable.attributes, attribute controls { "controls" }?, xh_source+ }⚓ |
model.attributable groups elements that contain a word or phrase that can be attributed to a source. [3.3.3. Quotation 4.3.2. Floating Texts] | |
Module | tei |
Used by |
model.inter
|
Members | model.quoteLike |
model.beckBlockBody Groups elements which can appear below the heading in an article or section. | |
Module | beck |
Used by |
macro.beckBlockContent
|
Members | aside audio blockquote button cite details dialog figure img ol p pre table ul video |
model.beckPhrase Groups elements which can appear at the phrase level. | |
Module | beck |
Used by |
macro.beckParaContent
|
Members | a audio cite code em figcaption img q span strong summary u video |
model.divPart groups paragraph-level elements appearing directly within divisions. [1.3. The TEI Class System] | |
Module | tei |
Used by | |
Members | model.lLike model.pLike |
Note |
Note that this element class does not include members of the model.inter class, which can appear either within or between paragraph-level items. |
model.global groups elements which may appear at any point within a TEI text. [1.3. The TEI Class System] | |
Module | tei |
Used by |
model.paraPart
|
Members | model.global.edit model.global.meta model.milestoneLike model.noteLike |
model.highlighted groups phrase-level elements which are typographically distinct. [3.3. Highlighting and Quotation] | |
Module | tei |
Used by |
model.phrase
|
Members | model.emphLike model.hiLike |
model.inter groups elements which can appear either within or between paragraph-like elements. [1.3. The TEI Class System] | |
Module | tei |
Used by |
model.paraPart
|
Members | model.attributable[model.quoteLike] model.biblLike model.egLike model.labelLike model.listLike model.oddDecl model.stageLike |
model.limitedPhrase groups phrase-level elements excluding those elements primarily intended for transcription of existing sources. [1.3. The TEI Class System] | |
Module | tei |
Used by | |
Members | model.emphLike model.hiLike model.pPart.data[model.addressLike model.dateLike model.measureLike model.nameLike[model.nameLike.agent model.offsetLike model.placeStateLike[model.placeNamePart]]] model.pPart.editorial model.pPart.msdesc model.phrase.xml model.ptrLike |
model.nameLike groups elements which name or refer to a person, place, or organization. | |
Module | tei |
Used by |
model.pPart.data
|
Members | model.nameLike.agent model.offsetLike model.placeStateLike[model.placeNamePart] |
Note |
A superset of the naming elements that may appear in datelines, addresses, statements of responsibility, etc. |
model.pPart.data groups phrase-level elements containing names, dates, numbers, measures, and similar data. [3.6. Names, Numbers, Dates, Abbreviations, and Addresses] | |
Module | tei |
Used by |
model.limitedPhrase model.phrase
|
Members | model.addressLike model.dateLike model.measureLike model.nameLike[model.nameLike.agent model.offsetLike model.placeStateLike[model.placeNamePart]] |
model.pPart.edit groups phrase-level elements for simple editorial correction and transcription. [3.5. Simple Editorial Changes] | |
Module | tei |
Used by |
model.phrase
|
Members | model.pPart.editorial model.pPart.transcriptional |
model.paraPart groups elements that may appear in paragraphs and similar elements. [3.1. Paragraphs] | |
Module | tei |
Used by | |
Members | model.gLike model.global[model.global.edit model.global.meta model.milestoneLike model.noteLike] model.inter[model.attributable[model.quoteLike] model.biblLike model.egLike model.labelLike model.listLike model.oddDecl model.stageLike] model.lLike model.phrase[model.graphicLike model.highlighted[model.emphLike model.hiLike] model.lPart model.pPart.data[model.addressLike model.dateLike model.measureLike model.nameLike[model.nameLike.agent model.offsetLike model.placeStateLike[model.placeNamePart]]] model.pPart.edit[model.pPart.editorial model.pPart.transcriptional] model.pPart.msdesc model.phrase.xml model.ptrLike model.segLike model.specDescLike] |
model.phrase groups elements which can occur at the level of individual words or phrases. [1.3. The TEI Class System] | |
Module | tei |
Used by |
model.paraPart
|
Members | model.graphicLike model.highlighted[model.emphLike model.hiLike] model.lPart model.pPart.data[model.addressLike model.dateLike model.measureLike model.nameLike[model.nameLike.agent model.offsetLike model.placeStateLike[model.placeNamePart]]] model.pPart.edit[model.pPart.editorial model.pPart.transcriptional] model.pPart.msdesc model.phrase.xml model.ptrLike model.segLike model.specDescLike |
Note |
This class of elements can occur within paragraphs, list items, lines of verse, etc. |
model.placeStateLike groups elements which describe changing states of a place. | |
Module | tei |
Used by |
model.nameLike
|
Members | model.placeNamePart |
att.classable Groups elements which can have a class attribute. | |||||||||||||
Module | beck | ||||||||||||
Members | a aside audio blockquote body br button cite code details dialog div em figcaption figure h2 h3 h4 html img li ol p q section span strong summary table u ul video | ||||||||||||
Attributes |
|
att.hasDate (Groups elements which have dating attributes (only @date so far).) | |||||||
Module | beck | ||||||
Members | article li span | ||||||
Attributes |
|
att.hasHref (Groups elements which have the href attribute.) | |||||||
Module | beck | ||||||
Members | a | ||||||
Attributes |
|
att.hasLang Groups elements which may have a language attribute. | |||||||||
Module | beck | ||||||||
Members | html span | ||||||||
Attributes |
|
att.hasTabindex (Groups elements which have the tabindex attribute.) | |||||||
Module | beck | ||||||
Members | button figcaption figure | ||||||
Attributes |
|
att.hasTitle (Groups elements which have the title attribute.) | |||||||
Module | beck | ||||||
Members | article aside h2 main | ||||||
Attributes |
|
att.hasnametype (Groups elements which have the @data-nametype attribute.) | |||||||
Module | beck | ||||||
Members | a span | ||||||
Attributes |
|
||||||
Schematron |
<sch:rule context="xh:span[@data-nametype = ('forename', 'surname')]">
<sch:assert test="not(matches(text(), '(([Ff]orename)|([Ss]urname))'))"> ERROR: Please
replace the placeholder values with real names.
</sch:assert>
</sch:rule>
|
macro.beckBlockContent Content model for div container. | |
Module | beck |
Used by |
article details div section
|
Content model |
<content> <sequence minOccurs="1" maxOccurs="1"> <classRef key="model.beckBlockHeading" minOccurs="0" maxOccurs="unbounded"/> <classRef key="model.beckBlockBody" minOccurs="0" maxOccurs="unbounded"/> </sequence> </content> ⚓ |
Declaration |
xh_macro.beckBlockContent = model.beckBlockHeading*, xh_model.beckBlockBody*⚓ |
macro.beckParaContent Content model for paragraph-type containers such as paragraphs, list items, and so on. | |
Module | beck |
Used by |
a aside blockquote button caption cite code em figcaption h2 h3 h4 li p q span strong
summary td th u
|
Content model |
<content> <alternate minOccurs="0" maxOccurs="unbounded"> <textNode/> <classRef key="model.beckPhrase"/> </alternate> </content> ⚓ |
Declaration |
xh_macro.beckParaContent = ( text | xh_model.beckPhrase )*⚓ |
teidata.certainty defines the range of attribute values expressing a degree of certainty. | |
Module | tei |
Used by |
teidata.probCert
|
Content model |
<content> <valList type="closed"> <valItem ident="high"/> <valItem ident="medium"/> <valItem ident="low"/> <valItem ident="unknown"/> </valList> </content> ⚓ |
Declaration |
xh_teidata.certainty = "high" | "medium" | "low" | "unknown"⚓ |
Note |
Certainty may be expressed by one of the predefined symbolic values high, medium, or low. The value unknown should be used in cases where the encoder does not wish to assert an opinion about the matter. |
teidata.count defines the range of attribute values used for a non-negative integer value used as a count. | |
Module | tei |
Used by | |
Content model |
<content> <dataRef name="nonNegativeInteger"/> </content> ⚓ |
Declaration |
xh_teidata.count = xsd:nonNegativeInteger⚓ |
Note |
Any positive integer value or zero is permitted |
teidata.duration.iso defines the range of attribute values available for representation of a duration in time using ISO 8601 standard formats. | |
Module | tei |
Used by | |
Content model |
<content> <dataRef name="token" restriction="[0-9.,DHMPRSTWYZ/:+\-]+"/> </content> ⚓ |
Declaration |
xh_teidata.duration.iso = token { pattern = "[0-9.,DHMPRSTWYZ/:+\-]+" }⚓ |
Example |
<time dur-iso="PT0,75H">three-quarters of an hour</time>
|
Example |
<date dur-iso="P1,5D">a day and a half</date>
|
Example |
<date dur-iso="P14D">a fortnight</date>
|
Example |
<time dur-iso="PT0.02S">20 ms</time>
|
Note |
A duration is expressed as a sequence of number-letter pairs, preceded by the letter
P; the letter gives the unit and may be Y (year), M (month), D (day), H (hour), M
(minute), or S (second), in that order. The numbers are all unsigned integers, except
for the last, which may have a decimal component (using either For complete details, see ISO 8601 Data elements and interchange formats — Information interchange — Representation of dates and times. |
teidata.duration.w3c defines the range of attribute values available for representation of a duration in time using W3C datatypes. | |
Module | tei |
Used by | |
Content model |
<content> <dataRef name="duration"/> </content> ⚓ |
Declaration |
xh_teidata.duration.w3c = xsd:duration⚓ |
Example |
<time dur="PT45M">forty-five minutes</time>
|
Example |
<date dur="P1DT12H">a day and a half</date>
|
Example |
<date dur="P7D">a week</date>
|
Example |
<time dur="PT0.02S">20 ms</time>
|
Note |
A duration is expressed as a sequence of number-letter pairs, preceded by the letter
P; the letter gives the unit and may be Y (year), M (month), D (day), H (hour), M
(minute), or S (second), in that order. The numbers are all unsigned integers, except
for the For complete details, see the W3C specification. |
teidata.enumerated defines the range of attribute values expressed as a single XML name taken from a list of documented possibilities. | |
Module | tei |
Used by | |
Content model |
<content> <dataRef key="teidata.word"/> </content> ⚓ |
Declaration |
xh_teidata.enumerated = teidata.word⚓ |
Note |
Attributes using this datatype must contain a single ‘word’ which contains only letters, digits, punctuation characters, or symbols: thus it cannot include whitespace. Typically, the list of documented possibilities will be provided (or exemplified) by a value list in the associated attribute specification, expressed with a <valList> element. |
teidata.language defines the range of attribute values used to identify a particular combination of human language and writing system. [6.1. Language Identification] | |
Module | tei |
Used by | |
Content model |
<content> <alternate> <dataRef name="language"/> <valList> <valItem ident=""/> </valList> </alternate> </content> ⚓ |
Declaration |
xh_teidata.language = xsd:language | ( "" )⚓ |
Note |
The values for this attribute are language ‘tags’ as defined in BCP 47. Currently BCP 47 comprises RFC 5646 and RFC 4647; over time, other IETF documents may succeed these as the best current practice. A ‘language tag’, per BCP 47, is assembled from a sequence of components or subtags separated by the hyphen character (-, U+002D). The tag is made of the following subtags, in the following order. Every subtag except the first is optional. If present, each occurs only once, except the fourth and fifth components (variant and extension), which are repeatable.
There are two exceptions to the above format. First, there are language tags in the IANA registry that do not match the above syntax, but are present because they have been ‘grandfathered’ from previous specifications. Second, an entire language tag can consist of only a private use subtag. These tags
start with Examples include
The W3C Internationalization Activity has published a useful introduction to BCP 47, Language tags in HTML and XML. |
teidata.name defines the range of attribute values expressed as an XML Name. | |
Module | tei |
Used by | |
Content model |
<content> <dataRef name="Name"/> </content> ⚓ |
Declaration |
xh_teidata.name = xsd:Name⚓ |
Note |
Attributes using this datatype must contain a single word which follows the rules defining a legal XML name (see https://www.w3.org/TR/REC-xml/#dt-name): for example they cannot include whitespace or begin with digits. |
teidata.numeric defines the range of attribute values used for numeric values. | |
Module | tei |
Used by |
Element:
|
Content model |
<content> <alternate> <dataRef name="double"/> <dataRef name="token" restriction="(\-?[\d]+/\-?[\d]+)"/> <dataRef name="decimal"/> </alternate> </content> ⚓ |
Declaration |
xh_teidata.numeric = xsd:double | token { pattern = "(\-?[\d]+/\-?[\d]+)" } | xsd:decimal⚓ |
Note |
Any numeric value, represented as a decimal number, in floating point format, or as a ratio. To represent a floating point number, expressed in scientific notation, ‘E notation’, a variant of ‘exponential notation’, may be used. In this format, the value is expressed as two numbers separated by the letter E. The first number, the significand (sometimes called the mantissa) is given in decimal format, while the second is an integer. The value is obtained by multiplying the mantissa by 10 the number of times indicated by the integer. Thus the value represented in decimal notation as 1000.0 might be represented in scientific notation as 10E3. A value expressed as a ratio is represented by two integer values separated by a solidus (/) character. Thus, the value represented in decimal notation as 0.5 might be represented as a ratio by the string 1/2. |
teidata.outputMeasurement defines a range of values for use in specifying the size of an object that is intended for display. | |
Module | tei |
Used by | |
Content model |
<content> <dataRef name="token" restriction="[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|ch|rem|vw|vh|vmin|vmax)"/> </content> ⚓ |
Declaration |
xh_teidata.outputMeasurement = token { pattern = "[\-+]?\d+(\.\d+)?(%|cm|mm|in|pt|pc|px|em|ex|ch|rem|vw|vh|vmin|vmax)" }⚓ |
Example |
<figure>
<head>The TEI Logo</head>
<figDesc>Stylized yellow angle brackets with the letters <mentioned>TEI</mentioned> in
between and <mentioned>text encoding initiative</mentioned> underneath, all on a white
background.</figDesc>
<graphic height="600px" width="600px"
url="http://www.tei-c.org/logos/TEI-600.jpg"/>
</figure>
|
Note |
These values map directly onto the values used by XSL-FO and CSS. For definitions of the units see those specifications; at the time of this writing the most complete list is in the CSS3 working draft. |
teidata.pointer defines the range of attribute values used to provide a single URI, absolute or relative, pointing to some other resource, either within the current document or elsewhere. | |
Module | tei |
Used by |
Element:
|
Content model |
<content> <dataRef restriction="\S+" name="anyURI"/> </content> ⚓ |
Declaration |
xh_teidata.pointer = xsd:anyURI { pattern = "\S+" }⚓ |
Note |
The range of syntactically valid values is defined by RFC 3986 Uniform Resource Identifier (URI): Generic Syntax. Note that the values themselves are encoded using RFC 3987 Internationalized Resource Identifiers (IRIs) mapping to URIs. For example, |
teidata.probCert defines a range of attribute values which can be expressed either as a numeric probability or as a coded certainty value. | |
Module | tei |
Used by | |
Content model |
<content> <alternate> <dataRef key="teidata.probability"/> <dataRef key="teidata.certainty"/> </alternate> </content> ⚓ |
Declaration |
xh_teidata.probCert = teidata.probability | teidata.certainty⚓ |
teidata.probability defines the range of attribute values expressing a probability. | |
Module | tei |
Used by |
teidata.probCert
|
Content model |
<content> <dataRef name="double"> <dataFacet name="minInclusive" value="0"/> <dataFacet name="maxInclusive" value="1"/> </dataRef> </content> ⚓ |
Declaration |
xh_teidata.probability = xsd:double⚓ |
Note |
Probability is expressed as a real number between 0 and 1; 0 representing certainly false and 1 representing certainly true. |
teidata.temporal.w3c defines the range of attribute values expressing a temporal expression such as a date, a time, or a combination of them, that conform to the W3C XML Schema Part 2: Datatypes Second Edition specification. | |
Module | tei |
Used by | |
Content model |
<content> <alternate> <dataRef name="date"/> <dataRef name="gYear"/> <dataRef name="gMonth"/> <dataRef name="gDay"/> <dataRef name="gYearMonth"/> <dataRef name="gMonthDay"/> <dataRef name="time"/> <dataRef name="dateTime"/> </alternate> </content> ⚓ |
Declaration |
xh_teidata.temporal.w3c = xsd:date | xsd:gYear | xsd:gMonth | xsd:gDay | xsd:gYearMonth | xsd:gMonthDay | xsd:time | xsd:dateTime⚓ |
Note |
If it is likely that the value used is to be compared with another, then a time zone indicator should always be included, and only the dateTime representation should be used. |
teidata.text defines the range of attribute values used to express some kind of identifying string as a single sequence of Unicode characters possibly including whitespace. | |
Module | tei |
Used by |
Element:
|
Content model |
<content> <dataRef name="string"/> </content> ⚓ |
Declaration |
xh_teidata.text = string⚓ |
Note |
Attributes using this datatype must contain a single ‘token’ in which whitespace and other punctuation characters are permitted. |
teidata.truthValue defines the range of attribute values used to express a truth value. | |
Module | tei |
Used by | |
Content model |
<content> <dataRef name="boolean"/> </content> ⚓ |
Declaration |
xh_teidata.truthValue = xsd:boolean⚓ |
Note |
The possible values of this datatype are 1 or true, or 0 or false. This datatype applies only for cases where uncertainty is inappropriate; if the attribute concerned may have a value other than true or false, e.g. unknown, or inapplicable, it should have the extended version of this datatype: teidata.xTruthValue. |
teidata.versionNumber defines the range of attribute values used for version numbers. | |
Module | tei |
Used by | |
Content model |
<content> <dataRef name="token" restriction="[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}"/> </content> ⚓ |
Declaration |
xh_teidata.versionNumber = token { pattern = "[\d]+[a-z]*[\d]*(\.[\d]+[a-z]*[\d]*){0,3}" }⚓ |
teidata.word defines the range of attribute values expressed as a single word or token. | |
Module | tei |
Used by |
teidata.enumeratedElement:
|
Content model |
<content> <dataRef name="token" restriction="[^\p{C}\p{Z}]+"/> </content> ⚓ |
Declaration |
xh_teidata.word = token { pattern = "[^\p{C}\p{Z}]+" }⚓ |
Note |
Attributes using this datatype must contain a single ‘word’ which contains only letters, digits, punctuation characters, or symbols: thus it cannot include whitespace. |
teidata.xTruthValue (extended truth value) defines the range of attribute values used to express a truth value which may be unknown. | |
Module | tei |
Used by | |
Content model |
<content> <alternate> <dataRef name="boolean"/> <valList> <valItem ident="unknown"/> <valItem ident="inapplicable"/> </valList> </alternate> </content> ⚓ |
Declaration |
xh_teidata.xTruthValue = xsd:boolean | ( "unknown" | "inapplicable" )⚓ |
Note |
In cases where where uncertainty is inappropriate, use the datatype teidata.TruthValue. |
teidata.xpath defines attribute values which contain an XPath expression. | |
Module | tei |
Used by | |
Content model |
<content> <textNode/> </content> ⚓ |
Declaration |
xh_teidata.xpath = text⚓ |
Note |
Any XPath expression using the syntax defined in 6.2.. When writing programs that evaluate XPath expressions, programmers should be mindful of the possibility of malicious code injection attacks. For further information about XPath injection attacks, see the article at OWASP. |
Schematron |
<sch:rule context="xh:main | xh:article">
<sch:let name="fname"
value="concat(@id, '.xml')"/>
<sch:assert test="ends-with(document-uri(/), $fname)"> ERROR: The @id of your document
(<sch:value-of select="@id"/>)
does not match the document file name (<sch:value-of select="document-uri(/)"/>).
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:img">
<sch:assert test="matches(@src, '^(img:)?[a-zA-Z0-9/\._\-]+$')"> Image file paths
must be well-formed (no spaces or punctuation).
</sch:assert>
<sch:assert test="matches(@src, '^(images/)|img:')"> Image file paths must begin with
images/ (for local images in the content folder) or img:filename.xxx
(for remote images in the media collection)
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:h3">
<sch:assert test="not(xh:a[@href])"> Don't place links inside h3 elements.
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:a">
<sch:assert test="not(descendant::xh:a[@href])"> Don't place links inside other links.
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:*[text()][not(ancestor-or-self::xh:script or ancestor-or-self::xh:style
or ancestor-or-self::xh:code or ancestor-or-self::xh:pre)]">
<sch:assert test="not(text()[matches(., $straightQuotes)])"> Do not use straight quotes
in text. Use the q or
span elements wherever possible; for apostrophes,
use the smart version (’).
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:*[not(self::xh:code or self::xh:pre)][text()]">
<sch:assert test="not(text()[matches(., '\.\s*\.\s*\.')])"> Don't use literal periods
to create an ellipsis. Use the
ellipsis character (…, Control + Shift + period) instead.
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:a">
<sch:assert test="not(matches(@href, '\s+'))"> There should be no spaces in href attributes
(links).
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:img">
<sch:assert test="every $att in @* satisfies local-name($att) = ('src', 'alt', 'title',
'width', 'height', 'id', 'style', 'class')"> Only the following attributes are allowed
on img: 'src', 'alt', 'title', 'id', 'style', 'class', 'width' and 'height'.
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:a[@href]">
<sch:assert test="not(matches(child::text()[not(following-sibling::node())], '[\.,:;]\s*$'))
or matches(., '((Esq\.)|(A\.\s*W\.)|(\.\s*\.\s*\.))$')"> Don't include trailing periods
and commas inside link text.
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:*[not(self::xh:code or self::xh:pre)][text()]">
<sch:assert test="not(text()[matches(., '[^\.A-Z]\.[A-Z]')]) or matches(text(), '(Ph\.D|M\.A\.)')">
Don't forget to put a space after every period.
</sch:assert>
</sch:rule>
|
Schematron |
<sch:rule context="xh:*[not(self::xh:code or self::xh:pre)][text()]">
<sch:assert test="not(text()[matches(., '\.\.\.')])"> Use an ellipsis (…) rather than
three periods.
</sch:assert>
</sch:rule>
|
Schematron |
<sch:ns uri="http://www.w3.org/1999/xhtml"
prefix="xh"/>
<sch:pattern>
<sch:let name="smartDouble" value="'[“”]'"/>
<sch:let name="smartSingle" value="'[‘’]'"/>
<sch:let name="straightDouble" value="'"'"/>
<sch:let name="straightApos" value="''''"/>
<sch:let name="straightQuotes"
value="concat('[', $straightDouble, $straightApos, ']')"/>
</sch:pattern>
|