Structural and domain vocabulary modules have the same XSD coding requirements for element type declarations.
A structural or domain vocabulary module must contain a declaration for each specialized
element type named by the module. While the XSD standard allows content models to refer to
undeclared element types, all element types named in content models within a vocabulary
module must have an <xs:element>
declaration, either in the
vocabulary module, in a base module from which the vocabulary module is specialized, or in a
required domain module.
Domain modules consist of a single XSD document. Structural modules consist of two modules; one module contains all element name groups, and the other contains all other declarations for the module.
For each element type that is declared in the vocabulary module, the following set of groups and declarations must be used to define the content model and attributes for the element type. These groups are typically placed together within the module for clarity.
<xs:group>
element whose name is the element type name, and whose
one member is a reference to the element type. This element name group provides a layer of
abstraction that facilitates redefinition. A document-type shell can redefine an element
group to add domain-specialized elements or to replace a base element type with one or
more specializations of that type.@class
attribute. Like
the content model, this group can be overridden in a constraint module to constrain the
attribute set.<xs:element>
declaration named
tagname, that uses as its type the
tagname.class complex type and extends that
complex type to add the @class
attribute for the element.<codeph>
element.<xs:group name="codeph"> <xs:sequence> <xs:choice> <xs:element ref="codeph"/> </xs:choice> </xs:sequence> </xs:group> <xs:group name="codeph.content"> <xs:sequence> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:group ref="basic.ph.notm"/> <xs:group ref="data.elements.incl"/> <xs:group ref="draft-comment"/> <xs:group ref="foreign.unknown.incl"/> <xs:group ref="required-cleanup"/> </xs:choice> </xs:sequence> </xs:group> <xs:attributeGroup name="codeph.attributes"> <xs:attributeGroup ref="univ-atts"/> <xs:attribute name="outputclass" type="xs:string"/> <xs:attributeGroup ref="global-atts"/> </xs:attributeGroup> <xs:complexType name="codeph.class" mixed="true"> <xs:sequence> <xs:group ref="codeph.content"/> </xs:sequence> <xs:attributeGroup ref="codeph.attributes"/> </xs:complexType> <xs:element name="codeph"> <xs:annotation> <xs:documentation> <!-- documentation for codeph --> </xs:documentation> </xs:annotation> <xs:complexType> <xs:complexContent> <xs:extension base="codeph.class"> <xs:attribute ref="class" default="+ topic/ph pr-d/codeph "/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element>
Return to main page.
dita-v1.3-os-part2-tech-content Standards Track Work Product | Copyright © OASIS Open 2015. All Rights Reserved. | 17 December 2015 |