[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
new eduml dtd
Here's the new DTD. It runs cleanly through nsgmls, the validating XML
parser I found.
Dan
<?XML version="1.0"?>
<!-- DTD v0.2 for eduml v0.6 Dan Moore 1/1/99 -->
<!-- changes since v0.1:
tracked eduml xml doc changes, through v0.8
cleanly ran through nsgmls, an sgml/xml checker
-->
<!ELEMENT edu (locale?,school,scale*,plos*,library?)>
<!ELEMENT locale (word+)>
<!ELEMENT word EMPTY>
<!ATTLIST word orig CDATA #REQUIRED
tranlang CDATA #REQUIRED
tranword CDATA #REQUIRED>
<!ELEMENT school (people, groups+, course+,room+)>
<!ATTLIST school id ID #IMPLIED>
<!ELEMENT people (person+)>
<!ELEMENT person (password,id,status,name,contact+,
styles*,stakeholder+)>
<!ELEMENT password (#PCDATA)>
<!ELEMENT id (#PCDATA)>
<!ATTLIST id type (national|provincial|school-board|school)
#REQUIRED>
<!ELEMENT status (#PCDATA)>
<!ATTLIST status date CDATA #IMPLIED>
<!ELEMENT name ((#PCDATA)|(org?, given,alias*,middle*,birthday,
family,pronounce?))>
<!ELEMENT org (#PCDATA)>
<!ELEMENT family (#PCDATA)>
<!ELEMENT given (#PCDATA)>
<!ELEMENT alias (#PCDATA)>
<!ELEMENT middle (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
<!ELEMENT pronounce (#PCDATA)>
<!ELEMENT contact (email, subscribe, snail, url, phone, fax)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT subscribe (#PCDATA)>
<!ELEMENT snail (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ATTLIST phone when (night|day|emergency) #REQUIRED
where (home|work) #REQUIRED>
<!ELEMENT fax (#PCDATA)>
<!ELEMENT styles (style+)>
<!ELEMENT style (#PCDATA)>
<!ELEMENT stakeholder (#PCDATA)>
<!ATTLIST stakeholder id IDREF #REQUIRED>
<!ELEMENT groups (group+)>
<!ELEMENT group (member+, comment*)>
<!ATTLIST group id IDREF #REQUIRED>
<!ELEMENT member (#PCDATA)>
<!ATTLIST member id IDREF #REQUIRED>
<!ELEMENT comment (#PCDATA)>
<!ELEMENT course ((course-name, room+, start,act,end,teacher+,
student+)|(#PCDATA))>
<!ATTLIST course id ID #REQUIRED>
<!ELEMENT course-name (#PCDATA)>
<!ELEMENT start (#PCDATA)>
<!ELEMENT act (comment,scale,mark)>
<!ATTLIST act id ID #REQUIRED date CDATA #REQUIRED>
<!ELEMENT mark (#PCDATA)>
<!ATTLIST mark student IDREF #REQUIRED time CDATA #REQUIRED
marker IDREF #REQUIRED>
<!ELEMENT end (#PCDATA)>
<!ELEMENT teacher ((#PCDATA)|(EMPTY))>
<!ATTLIST teacher id IDREF #REQUIRED>
<!ELEMENT student ((start,act,end)|EMPTY)>
<!ATTLIST student id IDREF #REQUIRED>
<!ELEMENT room (name,contact,schedule)>
<!ATTLIST room id ID #REQUIRED>
<!ELEMENT schedule (course)>
<!-- assessment ===================-->
<!ELEMENT scale (description,high, weight,list, math)>
<!ATTLIST scale id ID #REQUIRED>
<!ELEMENT description (#PCDATA)>
<!ELEMENT high (#PCDATA)>
<!ELEMENT weight (#PCDATA)>
<!ATTLIST weight type (relative|absolute) #REQUIRED>
<!ELEMENT list (#PCDATA)>
<!ELEMENT math (#PCDATA)>
<!ELEMENT plos (outcome-id+)>
<!ELEMENT outcome-id (plo-description, plo-report-card, plo+)>
<!ATTLIST outcome id ID #REQUIRED>
<!ELEMENT plo-description (#PCDATA)>
<!ATTLIST plo-description issuer IDREF #REQUIRED>
<!ELEMENT plo-report-card (#PCDATA)>
<!ATTLIST plo-report-card issuer IDREF #REQUIRED>
<!ELEMENT plo (item+)>
<!ATTLIST plo id ID #REQUIRED type (prerequisite|composite|alias)
#IMPLIED>
<!ELEMENT item (item-type, item-style, item-script)>
<!ATTLIST item id ID #REQUIRED>
<!ELEMENT item-type (#PCDATA)>
<!ELEMENT item-style (#PCDATA)>
<!ELEMENT item-script (#PCDATA)>
<!ATTLIST item-script id (perl|tcl|python|shell|etc) #REQUIRED
lib CDATA #REQUIRED>
<!-- library catalog =================-->
<!ELEMENT library (catalogue-system,item+)>
<!ATTLIST library id ID #REQUIRED>
<!ELEMENT catalogue-system (#PCDATA)>
<!ELEMENT traps (trap+)>
<!ELEMENT trap (#PCDATA)>
<!ATTLIST trap id CDATA #REQUIRED> <!-- type of trap-->
<!ELEMENT routines (routine+)>
<!ELEMENT routine (#PCDATA)>
<!ELEMENT operators (operator+)>
<!ELEMENT operator EMPTY>
<!ATTLIST operator id IDREF #REQUIRED>
<!ELEMENT borrower-categories (library-group+)>
<!ELEMENT library-group (school-group,student,loan-value,fine,
item-limit, trap)>
<!ELEMENT school-group EMPTY>
<!ATTLIST school-group id IDREF #REQUIRED school IDREF #REQUIRED>
<!ELEMENT loan-value EMPTY>
<!ATTLIST loan-value id CDATA #REQUIRED
name CDATA #REQUIRED
duration CDATA #REQUIRED>
<!ELEMENT fine EMPTY>
<!ATTLIST fine id CDATA #REQUIRED
max-fine CDATA #REQUIRED
daily-fine CDATA #REQUIRED>
<!ELEMENT item-limit EMPTY>
<!ATTLIST item-limit max CDATA #REQUIRED>
<!ELEMENT resource-categories (category+)>
<!ELEMENT category EMPTY>
<!ATTLIST category id CDATA #REQUIRED
name CDATA #REQUIRED
loan-value CDATA #IMPLIED>
<!ELEMENT lib-item (catalogue-code?,isbn?,issn?, barcode?,
loan-value-code, status, title, variant-title?,
keywords, level, authorities,summary, location,
responsibility, dates, price, edition, notes,
loan+)>
<!ATTLIST lib-item id ID #REQUIRED volume CDATA #REQUIRED
copy CDATA #REQUIRED>
<!ELEMENT catalogue-code (#PCDATA)>
<!ELEMENT isbn (#PCDATA)>
<!ELEMENT issn (#PCDATA)>
<!ELEMENT barcode (#PCDATA)>
<!ELEMENT loan-value-code EMPTY>
<!ATTLIST loan-value-code category CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT variant-title (#PCDATA)>
<!ELEMENT keywords (#PCDATA)>
<!ELEMENT level EMPTY>
<!ATTLIST level reading CDATA #IMPLIED
viewing CDATA #IMPLIED
scale CDATA #IMPLIED>
<!ELEMENT authorities (author+,subject+, series, conference,
organization, added-title, uniform)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT series (#PCDATA)>
<!ELEMENT conference (#PCDATA)>
<!ELEMENT organization (#PCDATA)>
<!ELEMENT added-title (#PCDATA)>
<!ELEMENT uniform (#PCDATA)>
<!ELEMENT summary (#PCDATA)>
<!ELEMENT location (#PCDATA)>
<!ELEMENT responsibility (#PCDATA)>
<!ELEMENT dates (date-acquired, year-published,
date-entry-updated)>
<!ELEMENT date-acquired EMPTY>
<!ATTLIST date-acquired date CDATA #IMPLIED>
<!ELEMENT year-published EMPTY>
<!ATTLIST year-published year CDATA #IMPLIED>
<!ELEMENT date-entry-updated EMPTY>
<!ATTLIST date-entry-updated date CDATA #REQUIRED
by ID #REQUIRED>
<!ELEMENT price (#PCDATA)>
<!ELEMENT edition (editor, place, publisher, physical)>
<!ELEMENT editor (#PCDATA)>
<!ELEMENT place (#PCDATA)>
<!ELEMENT publisher (#PCDATA)>
<!ELEMENT physical (#PCDATA)>
<!ATTLIST physical pages CDATA #IMPLIED>
<!ELEMENT notes (#PCDATA)>
<!ELEMENT loan (student,start,duration,overdue,end, comment?)>
<!ELEMENT duration (#PCDATA)>
<!ELEMENT overdue (#PCDATA)>
<!ATTLIST overdue severity CDATA #REQUIRED>