default namespace = "http://riboseinc.com/isoxml" grammar { start = iso-standard standard-document = element standard-document { bibdata , version ? , sections + } bibdata = element bibdata { BibliographicItem } status = element status { FormattedString | ( stage , substage ? ) } language = element language { ( "en" | "fr" ) } script = element script { "Latn" } version = element version { edition ? , revision-date ? , draft ? } edition = element edition { xsd:int } revision-date = element revision-date { xsd:date } sections = element sections { content , content ? , clause , references , terms , clause + , annex * , references ? } section-title = element title { text } content = element content { Content-Section } content-subsection = element subsection { Content-Section } Content-Section = attribute id { xsd:ID } ? , section-title ? , ( BasicBlock + | content-subsection + ) clause = element clause { Clause-Section } Clause-Section = attribute id { xsd:ID } ? , attribute inline-header { xsd:boolean } ? , section-title ? , ( BasicBlock + | clause-subsection + ) clause-subsection = element subsection { Clause-Section } annex = element annex { attribute id { xsd:ID } ? , attribute inline-header { xsd:boolean } ? , attribute subtype { "normative" | "informative" } ? , section-title ? , BasicBlock * , clause-hanging-paragraph-with-footnote * } references = element references { attribute id { xsd:ID } ? , section-title ? , bibitem * , references * } terms = element terms { attribute id { xsd:ID } ? , section-title ? , paragraph-with-footnote * , ul ? , ( term + | terms ? ) } term = element term { attribute id { xsd:ID } ? , preferred , admitted * , deprecates * , termdomain ? , definition , termnote * , termexample * , termsource * } preferred = element preferred { TextElement + } admitted = element admitted { TextElement + } deprecates = element deprecates { TextElement + } termdomain = element domain { TextElement + } definition = element definition { ( paragraph | figure | formula ) + } termnote = element termnote { attribute id { xsd:ID } , paragraph } termexample = element termexample { attribute id { xsd:ID } , BasicBlock } termsource = element termsource { attribute status { ( "identical" | "modified" ) } , origin , modification ? } origin = element origin { attribute citeas { text } , CitationType } modification = element modification { paragraph } BasicBlock = paragraph-with-footnote | table | note | formula | admonition | ol | ul | dl | figure | quote | sourcecode | example paragraph = element p { ParagraphType } Alignments = ( "left" | "right" | "center" | "justified" ) ParagraphType = attribute id { xsd:ID } , attribute align { Alignments } ? , ( TextElement ) * , review * paragraph-with-footnote = element p { attribute id { xsd:ID } , attribute align { Alignments } ? , ( TextElement | fn ) * , review * } note = element note { attribute id { xsd:ID } , paragraph-with-footnote + } review = element review { attribute id { xsd:ID } , attribute reviewer { text } ? , attribute date { xsd:date } ? , attribute from { xsd:ID } , attribute to { xsd:ID } , paragraph + } formula = element formula { attribute id { xsd:ID } , stem , dl ? } quote = element quote { attribute id { xsd:ID } , attribute alignment { Alignments } ? , quote-source ? , quote-author ? , paragraph-with-footnote + } quote-source = element source { CitationType } quote-author = element author { ContributorInfo } sourcecode = element sourcecode { attribute id { xsd:ID } , tname ? , ( text | callout ) + , annotation * } table = element table { attribute id { xsd:ID } , tname ? , thead ? , tbody , tfoot ? , table-note * , dl ? } tname = element name { text } thead = element thead { tr + } tfoot = element tfoot { tr } tbody = element tbody { tr + } table-note = element note { attribute id { xsd:ID } ? , paragraph } tr = element tr { ( td | th ) + } td = element td { attribute colspan { text } ? , attribute rowspan { text } ? , attribute align { "left" | "right" | "center" } ? , ( ( TextElement | fn | review ) * | paragraph-with-footnote + ) } th = element th { attribute colspan { text } ? , attribute rowspan { text } ? , attribute align { "left" | "right" | "center" } ? , ( ( TextElement | fn | review ) * | paragraph-with-footnote + ) } example = element example { attribute id { xsd:ID } , ( formula | ul | ol | dl | quote | sourcecode | paragraph-with-footnote | review ) + } admonition = element admonition { attribute id { xsd:ID } , attribute type { ( "danger" | "caution" | "warning" | "important" | "safety precautions" ) } , paragraph-with-footnote + } figure = element figure { attribute id { xsd:ID } , tname ? , ( image | figure + ) , fn * , dl ? , note * } TextElement = text | em | eref | strong | stem | sub | sup | tt | strike | smallcap | xref | br | hyperlink | hr | pagebreak | bookmark em = element em { text } strong = element strong { text } tt = element tt { text } sub = element sub { text } sup = element sup { text } strike = element strike { text } smallcap = element smallcap { text } br = element br { empty } hr = element hr { empty } pagebreak = element pagebreak { empty } bookmark = element bookmark { attribute id { xsd:ID } , empty } ReferenceFormat = ( "external" | "inline" | "footnote" | "callout" ) eref = element eref { attribute normative { xsd:boolean } ? , attribute citeas { text } , attribute type { ReferenceFormat } , CitationType , text } hyperlink = element link { attribute target { xsd:anyURI } , text } xref = element xref { attribute target { xsd:IDREF } , text } fn = element fn { attribute reference { text } , paragraph + } callout = element callout { attribute target { xsd:IDREF } , text } image = element image { attribute id { xsd:ID } , attribute src { xsd:anyURI } ? , attribute imagetype { ( "SVG" | "JPEG" | "GIF" | "PNG" | "PDF" ) } , attribute width { xsd:int } ? , attribute height { xsd:int } ? } stem = element stem { attribute type { "MathML" | "AsciiMath" } , text } annotation = element annotation { attribute id { xsd:ID } , paragraph } ul = element ul { attribute id { xsd:ID } , li + } li = element li { BasicBlock + } ol = element ol { attribute id { xsd:ID } , attribute type { ( "roman" | "alphabet" | "arabic" | "roman_upper" | "alphabet_upper" ) } , li + } dl = element dl { attribute id { xsd:ID } , ( dt , dd ) + } dt = element dt { TextElement } dd = element dd { BasicBlock } LocalizedString = attribute language { text } ? , attribute script { text } ? , text FormattedString = attribute format { ( "plain" | "html" | "docbook" | "tei" | "asciidoc" | "markdown" ) } , LocalizedStringOrXsAny LocalizedStringOrXsAny = attribute language { text } ? , attribute script { text } ? , ( text | Any ) + contributor = element contributor { role * , ContributorInfo } role = element role { attribute type { ( "author" | "edition" | "publisher" | text ) } ? , roledescription * } ContributorInfo = ( person | organization ) roledescription = element description { FormattedString } person = element person { fullname ? , affiliation * , person-identifier * , contact * , uri ? } fullname = element name { prefix * , forename * , initial * , surname , addition * } prefix = element prefix { LocalizedString } initial = element initial { LocalizedString } addition = element addition { LocalizedString } surname = element surname { LocalizedString } forename = element forename { LocalizedString } affiliation = element affiliation { affiliationname ? , affiliationdescription * , organization } affiliationname = element name { LocalizedString } affiliationdescription = element description { FormattedString } organization = element organization { orgname , uri ? , org-identifier * , contact * , technical-committee ? , subcommittee ? , workgroup ? , secretariat ? } orgname = element name { LocalizedString } uri = element uri { xsd:anyURI } contact = ( address | phone | email | uri ) phone = element phone { text } email = element email { text } address = element address { street + , city , state ? , country , postcode ? } street = element street { text } city = element city { text } state = element state { text } country = element country { text } postcode = element postcode { text } person-identifier = element identifier { attribute type { ( "isni" | "uri" ) } , text } org-identifier = element identifier { attribute type { ( "orcid" | "uri" ) } , text } citation = element citation { CitationType } CitationType = attribute bibitemid { xsd:IDREF } , locality * , date ? date = element date { ( xsd:gYear | xsd:date ) } locality = element locality { attribute type { ( "section" | "clause" | "part" | "paragraph" | "chapter" | "page" | "whole" ) } , localityreference * } localityreference = element reference { text } bibitem = element bibitem { attribute id { xsd:ID } , BibliographicItem } BibliographicItem = attribute type { "article" | "book" | "booklet" | "conference" | "manual" | "proceedings" | "presentation" | "thesis" | "techreport" | "standard" | "unpublished" } ? , ( btitle + | formattedref ) , source ? , docidentifier * , bdate * , contributor * , edition ? , biblionote * , partof * , language * , script * , abstract ? , status ? , copyright ? btitle = element title { text | ( title-intro ? , title-main , title-part ? ) } formattedref = element formattedref { TextElement + } source = element source { xsd:anyURI } bdate = element date { attribute type { ( "published" | "accessed" | "created" | "activated" | "obsoleted" ) } , ( xsd:gYear | xsd:date ) } docidentifier = element docidentifier { ( text | documentnumber | tc-documentnumber ) } biblionote = element note { FormattedString } abstract = element abstract { FormattedString } partof = element partof { BibliographicItem } copyright = element copyright { from , to ? , owner } from = element from { xsd:gYear } to = element to { xsd:gYear } owner = element owner { ContributorInfo } Anycontents = mixed { ( attribute * { text } | Any ) * } Any = element * { Anycontents } iso-standard = element iso-standard { bibdata , version ? , sections + } draft = element draft { text } stage = element stage { ( "00" | "10" | "20" | "30" | "40" | "50" | "60" | "90" | "95" ) } substage = element substage { ( "00" | "20" | "60" | "90" | "92" | "93" | "98" | "99" ) } documentnumber = element project-number { attribute part { xsd:int } ? , xsd:int } tc-documentnumber = element tc-document-number { xsd:int } technical-committee = element technical-committee { attribute number { xsd:int } ? , text } subcommittee = element subcommittee { attribute number { xsd:int } ? , text } workgroup = element workgroup { attribute number { xsd:int } ? , text } secretariat = element secretariat { text } title-intro = element title-intro { text } title-main = element title-main { text } title-part = element title-part { text } clause-hanging-paragraph-with-footnote = element subsection { attribute id { xsd:ID } ? , attribute inline-header { xsd:boolean } ? , section-title ? , BasicBlock * , clause-hanging-paragraph-with-footnote * } }