namespace c = "http://schema.cross-lfs.org/book" # We are building around the DocBook Schema include "../../../docbook/4.5/rng/docbook.rnc" { sect1 = ( element sect1 { sect1.attlist, sect1info?, sect.title.content, nav.class*, ((divcomponent.mix+, (refentry.class* | sect2* | simplesect*)) | refentry.class+ | sect2+ | simplesect+), nav.class* } | clfs.sect.package ) } # Common Attributes xml.attrib.base = attribute xml:base { text }? xml.attrib.id = attribute id { text } # Extend the standard profiling attributes local.effectivity.attrib &= clfs.attrib.arch, clfs.attrib.bits, clfs.attrib.multilib # Profiling Attributes clfs.attrib.arch = attribute c:arch { text }? clfs.attrib.bits = attribute c:bits { text }? clfs.attrib.multilib = attribute c:multilib { "true" | "false" }? clfs.attrib.r = attribute c:r { text }? # Inline Elements clfs.inline = (clfs.inline.emphasis | clfs.inline.literal | clfs.inline.replaceable | clfs.inline.application | clfs.inline.dirname | clfs.inline.filename | clfs.inline.command | text)* clfs.inline.common.attrib = clfs.attrib.arch, clfs.attrib.bits, clfs.attrib.multilib clfs.inline.emphasis = element c:emphasis { clfs.inline.common.attrib, clfs.inline } clfs.inline.literal = element c:literal { clfs.inline.common.attrib, clfs.inline } clfs.inline.replaceable = element c:replaceable { clfs.inline.common.attrib, clfs.inline } clfs.inline.application = element c:application { clfs.inline.common.attrib, clfs.inline } clfs.inline.dirname = element c:dirname { clfs.inline.common.attrib, clfs.inline } clfs.inline.filename = element c:filename { clfs.inline.common.attrib, clfs.inline } clfs.inline.command = element c:command { clfs.inline.common.attrib, clfs.inline } # Block Elements clfs.package.para = element c:para { xml.attrib.base, clfs.attrib.arch, clfs.attrib.bits, clfs.attrib.multilib, clfs.attrib.r, clfs.inline } clfs.package.note = element c:note { xml.attrib.base, clfs.attrib.arch, clfs.attrib.bits, clfs.attrib.multilib, clfs.attrib.r, (clfs.package.para | clfs.package.command)* } clfs.package.warning = element c:note { xml.attrib.base, clfs.attrib.arch, clfs.attrib.bits, clfs.attrib.multilib, clfs.attrib.r, (clfs.package.para | clfs.package.command)* } clfs.package.command = element c:command { xml.attrib.base, clfs.attrib.arch, clfs.attrib.bits, clfs.attrib.multilib, clfs.attrib.r, attribute c:nodump { "true" | "false" }?, (element c:literal { text } | text)+ } clfs.package.title = element c:title { xml.attrib.base, text } clfs.package.version = element c:version { xml.attrib.base, text } clfs.package.variant = element c:variant { xml.attrib.base, text }? clfs.package.description = element c:description { xml.attrib.base, clfs.inline } # The Package clfs.sect.package = element c:package { xml.attrib.base, xml.attrib.id, clfs.attrib.arch, clfs.attrib.bits, clfs.attrib.multilib, attribute c:multibuild { "true" | "false" }, clfs.package.title, clfs.package.version, clfs.package.variant, clfs.package.description, element c:install { (clfs.package.para | clfs.package.command | clfs.package.note | clfs.package.warning)+ }?, element c:config { (clfs.package.para | clfs.package.command | clfs.package.note | clfs.package.warning)+ }?, element c:contents { attribute c:ref { text } | ( element c:program { element c:name { text }, element c:description { clfs.inline } }*, element c:library { element c:name { text }, element c:description { clfs.inline } }*, element c:directory { element c:name { text }, element c:description { clfs.inline } }* ) }? }