Episode Markup Language 1.0.alpha

Converting to/from XHTML 1.0

EpML 1.0.a ~ Episode Markup Language 1.0.alpha

Folder: http://www.texgraph.com/xschemas/episodes/

  1. index.html ~ Index and ReadMe for EpML 1.0.a.
  2. episodes01.css ~ CSS2 Cascading Style Sheet (web standard) ~ for formatting and display of EpML 1.0.a documents as XML 1.0 or after transformation into XHTML 1.0 or HTML 4.01 format.
  3. episodes01.dtd ~ DTD Document Type Definition (web standard) ~ the DTD definition of EpML 1.0.a.
  4. episodes01.xsd ~ XSD XML Schema Definition (web standard) ~ the XSD definition of EpML 1.0.a.
  5. episodes01.xslt ~ XSLT XML Stylesheet Language Transformational (web standard) ~ the XSLT stylesheet for transforming EpML 1.0.a into XHTML 1.0. !Under Construction!
  6. Required: TexGraph.com Character Entities;

Notes

  1. Episode Markup Language 1.0.beta or 1.0.final will replace version 1.0.alpha when available, because the file names do not indicate alpha, beta, or final drafts. Tag elements, attributes, values, and definitions are subject to change prior to the final version.
  2. When using XHTML, it is best to include the comment after the closing tag, because it makes using find/replace easier for converting to XML tags, such as Episode Markup Language 1.0.alpha. Example:
    <tagInXML>...</tagInXML>
    converts to/from
    <div class="tagInXML">...</div> <!-- class="tagInXML" -->
    or
    <div class="tagInXML">...</div> <!-- tagInXML -->
    The closing tag has not been indicated in the table below, because it is a trivial or simple case.
  3. A future upgrade may incorporate XHTML 1.0 into the Episode Markup Language 1.0.final tagset, so that tags marked true in Column 1 would belong to XHTML 1.0’s namespace. This would make Episode Markup Language simpler and less confusing by using existing standards.
  4. Two major weaknesses of Episode Markup Language 1.0.alpha at this time are the lack of useable hyperlinks and the lack of an XSLT stylesheet to transform the XML to/from XHTML 1.0. Both weaknesses are because the author is learning XML and its dependents, but also because of the state of support for native XML by the major browsers. These should be corrected in Episode Markup Language 1.0.final.
  5. The CSS2 stylesheet, episodes01.css is only a suggestion for a presentation format, in this case for a science fiction series. Authors who use Episode Markup Language 1.0 may wish to alter the style contents, but obviously must not alter the style (class) names. The stylesheet includes style (class) names in both TagName and .TagName formats, to easily synchronize the styles.
  6. The name “Episode Markup Language 1.0” is rather long and clumsy. A shorter name or nickname will be provided.
  7. The pairs of tags TagHead, Tag; such as EpNumberHead, EpNumber; CastActorHead, CastActor; etc. are meant to be row or column heads and data items, respectively. To reduce and simplify, Head may become a boolean attribute. If implemented, this would require changes throughout the existing DTD, XSD, and CSS files. The problem would be how to support and differentiate this in CSS2, since even MSIE6 and NS6, but especially older browser versions, may not handle applying multiple class styles correctly, such as class="MyTagClass MyHeadClass", which is correct CSS2 syntax. The CSS2 syntax, element[attribute="value"] { } is unfortunately not supported by MSIE6.
  8. The difference between the Episode, EpisodeItem, and EpisodeItemHead elements is in their intended use. Episode tags are independent blocks, whereas EpisodeItem and EpisodeItemHead tags are contained in EpisodeList tags. Perhaps a better definition can remove the confusing need for separate tags.
  9. EpProdNumber and EpNumber are also separated by purpose, which may be confusing and which needs a better redefinition. The intent is to contain child elements or attributes that encode or abbreviate the series name, season number, and episode number within the season. An alternative scheme for the production number disregards season and episode numbers, and simply increments throughout the run of the series. For example, production number WOW-052 might be Season 2, Episode 26. Various styles for the coding might be WOW-052, WOW.226, WOW.02.26, or some other scheme. The tag definition must allow essentially any mixed text and numeric string.
  10. Authors may want some options for converting to XHTML 1.0 or HTML 4.01. This author has chosen to use divs for the largest blocks with multiple parts; tables for large blocks containing multiple records, table-cells, or list-items containing fields; header and data cells for fields or records; and divs, paragraphs, or spans for fields or sub-fields.
Use XHTML 1.0 Episode Markup Language 1.0 XHTML 1.0 or HTML 4.01
false <EpDocument> </EpDocument> <html> </html>
true <EpDocHead> </EpDocHead> <head> </head>
true <title> </title> <title> </title>
true <charset content="ISO-8859-1" /> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
true <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
true <meta name="" content="" /> <meta name="" content="" />
true <keywords content="" /> <meta name="keywords" content="" />
true <description content="" /> <meta name="description" content="" />
true <styles type="text/css" version="" href="" title="" /> <link rel="stylesheet" type="text/css" href="" />
true <styles type="text/css" version="" href="" title=""> </styles> <style type="text/css"> </style>
true <script language="JavaScript" type="text/javascript" version="" src=""> </script> <script language="JavaScript" type="text/javascript" src=""> </script>
true EpDocBody lang body xml:lang
false NavBar div class="NavBar"
false NavMenu div class="NavMenu"
false NavItem a class="NavItem" (recommended)
span class="NavItem" (allowed)
true Heading
Heading Level="1...6"
h3
h1...h6
true Notes ol (recommended)
ul (allowed)
true Note li
false EpisodeList Series Season table class="EpisodeList" cellspacing cellpadding <!-- Series Season -->
false EpisodeItemHead tr class="EpisodeItemHead"
false EpisodeItem tr class="EpisodeItem"
false Episode div | table class="Episode"
false EpHeader table class="EpHeader"
false EpRow tr class="EpRow"
false EpProdNumberHead th class="EpProdNumberHead"
false EpProdNumber td class="EpProdNumber"
false EpSeriesHead th class="EpSeriesHead"
false EpSeries td class="EpSeries"
false EpSeasonHead th class="EpSeasonHead"
false EpSeason td class="EpSeason"
false EpNumberHead th class="EpNumberHead"
false EpNumber td class="EpNumber"
false EpTitleHead th class="EpTitleHead"
false EpTitle td class="EpTitle"
false EpDateHead th class="EpDateHead"
false EpDate td class="EpDate"
false EpSynopsisHead th class="EpSynopsisHead"
false EpSynopsis td class="EpSynopsis"
false StaffList table class="StaffList"
false StaffItem tr class="StaffItem"
false StaffHeading th class="StaffHeading" colspan="2"
false StaffLabel th class="StaffLabel"
false StaffName td class="StaffName"
false CastList table class="CastList"
false CastItem tr class="CastItem"
false CastHeading th class="CastHeading" colspan="2"
false CastActor Head="false | true" td | th class="CastActor"
false CastRole Head="false | true" Kind="kind" td | th class="CastRole" <!-- Kind="kind" -->