ASPN ActiveState Programmer Network
ActiveState
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups


Recent Messages
List Archives
About the List
List Leaders
Subscription Options

View Subscriptions
Help

View by Topic
ActiveState
.NET Framework
Open Source
Perl
PHP
Python
Tcl
Web Services
XML & XSLT

View by Category
Database
General
SOAP
System Administration
Tools
User Interfaces
Web Programming
XML Programming


MyASPN >> Mail Archive >> xml-dev
xml-dev
Re: [xml-dev] XML Schema considered harmful?
by John Cowan other posts by this author
Jun 5 2002 4:15PM messages near this date
Re: [xml-dev] XML Schema considered harmful? | Re: [xml-dev] XML Schema considered harmful?
Murali Mani scripsit:

>  I am very glad that RELAX NG recently came up with a non XML syntax also..
>  I have not checked it out, but I am confident it will be useful.. I am
>  sure that XML syntax might be useful in several scenarios (though I do not
>  know when, and I do not think i need them at this point of time).

Basically the XML syntax is useful for processing, whereas the RNC (compact)
syntax is useful for authoring.  Validating can be done with either syntax,
if you use the Jing validator.  Here is a Real World schema in RNC syntax,
namely my IBTWSH6 schema, which is a subset of HTML Basic.

There are certain improvements over the DTD version: for example, only
one of the "rel" or "rev" attributes is allowed in an "a" element, and only one
of the "name" or "http-equiv" attributes is allowed in a "meta" element.
Further, the "title" element can be allowed anywhere in a "head" element,
not just at the beginning.

=====cut here=====

# Common attributes

# All elements (except full-document elements) can have these attributes

all =		attribute id {xsd:ID}?,
		attribute class {token}?,
		attribute title {text}?

# All non-empty elements can have these attributes

i18n =		attribute xml:lang {text}?,
		attribute dir {"ltr" | "rtl"}?

basic =		all, i18n


# Models

horiz.model =	basic & text & horiz*
vert.model =	horiz.model & vert*
struct.model = 	basic & vert*


# Horizontal formatting elements

horiz =		a | br | horiz.other

a =		element a {
			attribute href {xsd:anyURI}?,
			attribute name {text}?,
			attribute rel | rev {xsd:anyURI}?,
			horiz.model
			}

br =		element br {all, empty}

horiz.other =	element abbr | acronym | cite | code |
			dfn | em | img | kbd | q | samp | span |
			strong | var {horiz.model}


# Vertical formatting elements

vert	=	header | List | table | vert.other

header = 	element h1 | h2 | h3 {horiz.model}


List =		element dl {basic, element dt | dd {horiz.model}+ } |
		element ol|ul {basic, element li {horiz.model}+ }

aligns = 	attribute align {"left" | "center" | "right" | "justified"}?,
		attribute valign {"top" | "middle" | "bottom" | "baseline"}?

table = 	element table {
			basic,
			attribute summary {text}?,
			element caption {horiz.model}?,
			element tr {
				basic,
				aligns,
				tabledata+}+
			}

tabledata =	element th | td {
			aligns,
			attribute abbr {text}?,
			attribute axis {text}?,
			attribute colspan {xsd:nonNegativeInteger}?,
			attribute headers {xsd:IDREFS}?,
			attribute rowspan {xsd:nonNegativeInteger}?,
			attribute scope {"row" | "col" | "rowgroup" | "colgroup"}?,
			vert.model
			}

vert.other =	element address {horiz.model} |
		element blockquote {attribute cite {xsd:anyURI}?, struct.model} |
		element div {struct.model} |
		element p {horiz.model} |
		element pre {horiz.model}


# Support for complete HTML documents

start = 	element html {
			i18n,
			attribute xml:base {xsd:anyURI}?,
			attribute xml:space {"preserve" | "default"}?,
			head,
			element body {basic, vert*}
			}

head =		element head {
			i18n &
			element title {i18n, text} &
			element meta {
				attribute name|http-equiv {token}?,
				attribute content {text},
				empty
				}*
			}

=====cut here=====

-- 
John Cowan <jcowan@[...].com>      http://www.reutershealth.com
I amar prestar aen, han mathon ne nen,    http://www.ccil.org/~cowan
han mathon ne chae, a han noston ne 'wilith.  --Galadriel, _LOTR:FOTR_

-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org> , an
initiative of OASIS <http://www.oasis-open.org> 

The list archives are at http://lists.xml.org/archives/xml-dev/

To subscribe or unsubscribe from this list use the subscription
manager: <http://lists.xml.org/ob/adm.pl> 
Thread:
Tim Bray
Michael Leditschke
Rick Jelliffe
Michael Leditschke
Rick Jelliffe
Cyril Jandia
Thomas B. Passin
Murali Mani
John Cowan
John Cowan
Eddie Robertsson
James Clark
Murali Mani
Simon St.Laurent
Don Park
Murali Mani
Joe English

Privacy Policy | Email Opt-out | Feedback | Syndication
© ActiveState Software Inc. All rights reserved