RelaxNG/publidoc.rnc
changeset 212 37c610d728e8
parent 208 3541b0d0bf0b
child 214 c169dbf34858
equal deleted inserted replaced
211:9c8d0c134b73 212:37c610d728e8
   629  & var*
   629  & var*
   630  & number*
   630  & number*
   631  & math*
   631  & math*
   632  & date*
   632  & date*
   633  & name*
   633  & name*
       
   634  & foreign*
       
   635  & acronym*
       
   636  & term*
       
   637  & literal*
       
   638  & stage*
       
   639  & highlight*
       
   640  & mentioned*
       
   641  & initial*
   634  & note*
   642  & note*
   635  & foreign*
       
   636  & highlight*
       
   637  & quote*
   643  & quote*
   638  & acronym*
       
   639  & mentioned*
       
   640  & term*
       
   641  & stage*
       
   642  & literal*
       
   643  & initial*
       
   644  & link*
   644  & link*
   645  & anchor*
   645  & anchor*
   646  & image*
   646  & image*
   647  & audio*
   647  & audio*
   648  & smil*
   648  & smil*
   666 
   666 
   667 number.attributes =
   667 number.attributes =
   668    number.value.attribute?
   668    number.value.attribute?
   669 number.value.attribute = attribute value { xsd:integer | xsd:decimal }
   669 number.value.attribute = attribute value { xsd:integer | xsd:decimal }
   670 
   670 
   671 number.content = mixed { sup* }
   671 number.content = mixed { sup* & warning* }
   672 number.roman.content = xsd:token {pattern = "[DLXVI]+"}
   672 number.roman.content = xsd:token {pattern = "[DLXVI]+"}
   673 
   673 
   674 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ math ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   674 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ math ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   675 
   675 
   676 math = element math {
   676 math = element math {
   693    date.value.attribute
   693    date.value.attribute
   694  & date.of.attribute?
   694  & date.of.attribute?
   695 date.value.attribute = attribute value { xsd:date | xsd:gYearMonth | xsd:gYear }
   695 date.value.attribute = attribute value { xsd:date | xsd:gYearMonth | xsd:gYear }
   696 date.of.attribute = attribute of { "birth" | "death" }
   696 date.of.attribute = attribute of { "birth" | "death" }
   697 
   697 
   698 date.content = mixed { sup* }
   698 date.content = mixed { sup* & warning* }
   699 
   699 
   700 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   700 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   701 
   701 
   702 name = element name { name.attributes, name.content }
   702 name = element name { name.attributes, name.content }
   703 
   703 
   704 name.attributes =
   704 name.attributes =
   705    name.of.attribute?
   705    name.of.attribute?
   706 name.of.attribute = attribute of
   706 name.of.attribute = attribute of
   707    { "person" | "company" | "book" | "newspaper" | "party" | "painting" }
   707    { "person" | "company" | "book" | "newspaper" | "party" | "painting" }
   708 
   708 
   709 name.content = inlines
   709 name.content = mixed { sup* & number* & acronym* & warning* }
       
   710 
       
   711 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   712 
       
   713 foreign = element foreign { foreign.attributes, foreign.content }
       
   714 
       
   715 foreign.attributes =
       
   716    lang.attribute?
       
   717 
       
   718 foreign.content = mixed { sup* & sub* & number* & warning* }
       
   719 
       
   720 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ acronym ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   721 
       
   722 acronym = element acronym { acronym.content }
       
   723 
       
   724 acronym.content = mixed { sup* & warning* }
       
   725 
       
   726 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ term ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   727 
       
   728 term = element term { term.content }
       
   729 
       
   730 term.content = mixed { sup* & warning* }
       
   731 
       
   732 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ literal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   733 
       
   734 literal = element literal { literal.content }
       
   735 
       
   736 literal.content = mixed { sup* & warning* }
       
   737 
       
   738 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   739 
       
   740 stage = element stage { stage.content }
       
   741 
       
   742 stage.content = inlines
       
   743 
       
   744 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   745 
       
   746 highlight = element highlight { highlight.content }
       
   747 
       
   748 highlight.content = inlines
       
   749 
       
   750 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mentioned ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   751 
       
   752 mentioned = element mentioned { mentioned.content }
       
   753 
       
   754 mentioned.content = inlines
       
   755 
       
   756 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initial ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   757 
       
   758 initial = element initial { initial.content }
       
   759 
       
   760 initial.content =
       
   761    c,
       
   762    w?
       
   763 
       
   764 c = element c { text }
       
   765 w = element w { inlines }
   710 
   766 
   711 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   767 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ note ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   712 
   768 
   713 note = element note { note.attributes, note.content }
   769 note = element note { note.attributes, note.content }
   714 
   770 
   717 note.label.attribute = attribute label { text }
   773 note.label.attribute = attribute label { text }
   718 
   774 
   719 note.content =
   775 note.content =
   720    (w?, block+) | inlines
   776    (w?, block+) | inlines
   721 
   777 
   722 w = element w { inlines }
       
   723 
       
   724 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   725 
       
   726 foreign = element foreign { foreign.attributes, foreign.content }
       
   727 
       
   728 foreign.attributes =
       
   729    lang.attribute?
       
   730 
       
   731 foreign.content = inlines
       
   732 
       
   733 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ highlight ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   734 
       
   735 highlight = element highlight { highlight.content }
       
   736 
       
   737 highlight.content = inlines
       
   738 
       
   739 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   778 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ quote ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   740 
   779 
   741 quote = element quote { quote.content }
   780 quote = element quote { quote.content }
   742 
   781 
   743 quote.content =
   782 quote.content =
   744    (phrase, attribution) | inlines
   783    (phrase, attribution) | inlines
   745 
   784 
   746 phrase = element phrase { phrase.content }
   785 phrase = element phrase { phrase.content }
   747 
   786 
   748 phrase.content = inlines
   787 phrase.content = inlines
   749 
       
   750 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ acronym ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   751 
       
   752 acronym = element acronym { acronym.content }
       
   753 
       
   754 acronym.content = inlines
       
   755 
       
   756 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mentioned ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   757 
       
   758 mentioned = element mentioned { mentioned.content }
       
   759 
       
   760 mentioned.content = inlines
       
   761 
       
   762 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ term ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   763 
       
   764 term = element term { term.content }
       
   765 
       
   766 term.content = inlines
       
   767 
       
   768 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ stage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   769 
       
   770 stage = element stage { stage.content }
       
   771 
       
   772 stage.content = inlines
       
   773 
       
   774 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ literal ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   775 
       
   776 literal = element literal { literal.content }
       
   777 
       
   778 literal.content = text
       
   779 
       
   780 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ initial ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   781 
       
   782 initial = element initial { initial.content }
       
   783 
       
   784 initial.content =
       
   785    c,
       
   786    w?
       
   787 
       
   788 c = element c { text }
       
   789 
   788 
   790 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   789 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   791 
   790 
   792 link = element link { link.attributes, link.content }
   791 link = element link { link.attributes, link.content }
   793 
   792 
   794 link.attributes =
   793 link.attributes =
   795    (uri.attribute | idref.attribute)
   794    (uri.attribute | idref.attribute)
   796 uri.attribute = attribute uri { xsd:anyURI }
   795 uri.attribute = attribute uri { xsd:anyURI }
   797 idref.attribute = attribute idref { xsd:IDREF }
   796 idref.attribute = attribute idref { xsd:IDREF }
   798 
   797 
   799 link.content = inlines
   798 link.content =  mixed {
       
   799    sup* & sub* & var* & number* & math* & date* & name* & foreign* & acronym*
       
   800  & term* & literal* & stage* & highlight* & mentioned* & warning* }
   800 
   801 
   801 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ anchor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   802 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ anchor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   802 
   803 
   803 anchor = element anchor { anchor.attributes, anchor.content }
   804 anchor = element anchor { anchor.attributes, anchor.content }
   804 
   805