default namespace = “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 * }

}