|
![]() Overview |
![]() The Technology |
![]() XML description |
XML description
The Code DTD
<!-- The Perl Geek Code DTD -->
<!-- This DTD can be used to generate XML descriptions of
various other Geek-type codes.
Note that this DTD is only indicative and is _not_ used
by the Perl scripts that come with the Perl Geek Code
distribution. For example you can use XHTML basically
anywhere PCDATA is allowed and you can add attributes
to subcat that will be picked-up by replace elements -->
<!-- Copyright 2001 - Michel Rodriguez
All rights reserved.
This DTD is free software; you can redistribute it and/or
modify it under the same terms as Perl itself. -->
<!-- A Geek Code -->
<!ELEMENT code (modifiers, section+)>
<!-- modifiers that apply to all items -->
<!ELEMENT modifiers (title, modifier+)>
<!-- a modifier has an id, which appears in the code, a short
form (displayed in the form) and a long form (displayed
in the HTML description of the code. Modifiers of type
simple are just on/off for the item, while modifiers of
type level can take values based on the various levels
for each item and... the length of the id! If the id is
2 characters then they are taken as open/close braces,
surrounding the level value, otherwise the id is just a
prefix for the value, hence >++ and (--) -->
<!ELEMENT modifier (short, long)>
<!ATTLIST modifier
id ID #REQUIRED
type (simple|level) #REQUIRED>
<!ELEMENT short (#PCDATA)>
<!ELEMENT long (#PCDATA)>
<!ELEMENT section (title, item+)>
<!-- an item might include sub-categories, for exemple language includes
C, C++, Java... -->
<!ELEMENT item (title, comments?, subcats?, level+)>
<!ATTLIST item
id ID #REQUIRED>
<!ELEMENT subcats (subcat+)>
<!ELEMENT subcat (#PCDATA)>
<!-- the definition of a subcategory: its id, name and additional
attributes used to generate the description for the different levels
of the subcat. god is usually the creator of the language -->
<!ATTLIST subcat
id CDATA #REQUIRED
god CDATA #IMPLIED>
<!-- a level for the category, includes the str (+++, --...) and the
associated text. If there are subcategories in the item then replace
is used to get either the sub cat name or an attribute -->
<!ELEMENT level (#PCDATA|replace|a|i|b|strong|small|tt)+>
<!ATTLIST level
str CDATA #REQUIRED>
<!ELEMENT replace #EMPTY>
<!ATTLIST replace
val CDATA #REQUIRED
str CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT comments (ANY)>
![]() Overview |
![]() The Technology |
![]() XML description |
copyright © 2001 Michel Rodriguez


