<?xml version="1.0"?>
<?xm-well_formed path="C:\Projects\NIST\UBLNDR\UBL-NDRProfile-Classification.dtd"?>
<NDRProfile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 NDRProfileID="UBLNDRv1"><NDRTitle>Universal Business Language Naming and Design
Rules</NDRTitle><Classification><ClassificationName>[GSX] General XML Schema
Rules </ClassificationName>
<Guidance guidanceID="rule-GXS1" documentationID="rule-GXS1"
 prefixToken="GXS1"> <EnforcementLevel></EnforcementLevel> <GuidanceText> UBL
Schema, except in the case of extension, where the 'UBL Extensions' element is
used, MUST conform to the following physical layout as
applicable:</GuidanceText> <CodeExample> &lt;!-- ======= XML
Declaration======== --&gt; &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!--
======= Schema Header ======= --&gt; Document Name: &lt; Document name as
indicated in Section 3.6 &gt; Generated On: &lt; Date schema was generated &gt;
&lt;!-- ===== xsd:schema Element With Namespaces Declarations ===== --&gt;
xsd:schema element to include version attribute and namespace declarations in
the following order: xmlns:xsd Target namespace Default namespace
CommonAggregateComponents CommonBasicComponents CoreComponentTypes Unqualified
Datatypes Qualified Datatypes Identifier Schemes Code Lists Attribute
Declarations – elementFormDefault="qualified"
attributeFormDefault="unqualified" Version Attribute &lt;!-- ===== Imports
===== --&gt; CommonAggregateComponents schema module CommonBasicComponents
schema module Unqualified Types schema module Qualified Types schema module
&lt;!-- ===== Root Element ===== --&gt; Root Element Declaration Root Element
Type Definition &lt;!-- ===== Element Declarations ===== --&gt; alphabetized
order &lt;!-- ===== Type Definitions ===== --&gt; All type definitions
segregated by basic and aggregates as follows &lt;!-- ===== Aggregate Business
Information Entity Type Definitions ===== --&gt; alphabetized order of
ccts:AggregateBusinessInformationEntity xsd:TypeDefinitions &lt;!-- =====Basic
Business Information Entity Type Definitions ===== --&gt; alphabetized order of
ccts:BasicBusinessInformationEntities &lt;!-- ===== Copyright Notice =====
--&gt; Required OASIS full copyright notice.</CodeExample> </Guidance>
<Guidance guidanceID="rule-GXS14" documentationID="rule-GXS14"
 prefixToken="GXS14"> <EnforcementLevel/> <GuidanceText> The xsd:any element
MUST NOT be used except within the 'ExtensionContentType' type definition, and
with xsd:processContents= "skip" for non-UBL namespaces.</GuidanceText>
</Guidance>
<Guidance guidanceID="rule-GXS2" documentationID="rule-GXS2"
 prefixToken="GXS2"> <EnforcementLevel/> <GuidanceText> UBL MUST provide two
normative schemas for each transaction. One schema shall be fully annotated.
One schema shall be a run-time schema devoid of documentation.</GuidanceText>
</Guidance></Classification><Classification><ClassificationName>[ELD]Element
Declaration rules </ClassificationName>
<Guidance guidanceID="rule-ELD10" documentationID="rule-ELD10"
 prefixToken="ELD10"> <EnforcementLevel/> <GuidanceText> The root element MUST
be the only global element declared in document schemas.</GuidanceText>
</Guidance>
<Guidance guidanceID="rule-ELD2" documentationID="rule-ELD2"
 prefixToken="ELD2"> <EnforcementLevel/> <GuidanceText> All element declarations
MUST be global </GuidanceText> </Guidance>
<Guidance guidanceID="rule-ELD12" documentationID="rule-ELD12"
 prefixToken="ELD12"> <EnforcementLevel/> <GuidanceText> The 'UBL Extensions'
element MUST be declared as the first child of the document element with
xsd:minOccurs="0".</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-ELD13" documentationID="rule-ELD13"
 prefixToken="ELD13"> <EnforcementLevel/> <GuidanceText> The 'UBLProfileID'
element MUST be declared immediately following the 'UBL Extensions' element
with xsd:minOccurs="0".".</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-ELD14" documentationID="rule-ELD14"
prefixToken="ELD14"> <EnforcementLevel/> <GuidanceText> The 'UBLSubsetID'
element MUST be declared immediately following the 'UBLProfileID' element with
xsd:minOccurs="0".</GuidanceText> </Guidance></Classification> <Classification>
<ClassificationName> [NMC]Naming Constraints Rules</ClassificationName>
<Guidance guidanceID="rule-NMC1" documentationID="rule-NMC1"
prefixToken="NMC1"> <EnforcementLevel/> <GuidanceText> Each dictionary entry
name MUST define one and only one fully qualified path (FQP) for an element or
attribute. </GuidanceText> </Guidance><Classification>
<ClassificationName>[MDC]Modeling Constraints Rules
</ClassificationName></Classification>
<Guidance guidanceID="rule-MDC1" documentationID="rule-MDC1"
prefixToken="MDC1"> <EnforcementLevel/> <GuidanceText> UBL Libraries and
Schemas MUST only use ebXML Core Component approved ccts:CoreComponentTypes,
except in the case of extension, where the 'UBL ExtensionS' element is
used.</GuidanceText> </Guidance>
<Guidance guidanceID="rule-MDC2" documentationID="rule-MDC2"
prefixToken="MDC2"> <EnforcementLevel/> <GuidanceText> Mixed content MUST NOT
be used except where contained in an xsd:documentation element. </GuidanceText>
<CodeExample> &lt;xsd:element name="Party" type="PartyType"/&gt;
&lt;xsd:complexType name="PartyType"&gt; &lt;xsd:annotation&gt;
&lt;!—Documentation goes here --&gt; &lt;/xsd:annotation&gt;
&lt;xsd:sequence&gt; &lt;xsd:element ref="cbc:MarkCareIndicator" minOccurs="0"
maxOccurs="1"&gt; ... &lt;/xsd:element&gt; &lt;xsd:element
ref="cbc:MarkAttentionIndicator" minOccurs="0" maxOccurs="1"&gt; ...
&lt;/xsd:element&gt; &lt;xsd:element ref="PartyIdentification" minOccurs="0"
maxOccurs="unbounded"&gt; ... &lt;/xsd:element&gt; &lt;xsd:element
ref="PartyName" minOccurs="0" maxOccurs="1"&gt; ... &lt;/xsd:element&gt;
&lt;xsd:element ref="Address" minOccurs="0" maxOccurs="1"&gt; ...
&lt;/xsd:element&gt; ... &lt;/xsd:sequence&gt; &lt;/xsd:complexType&gt;
&lt;xsd:element name="Address" type="AddressType"/&gt; &lt;xsd:complexType
name="AddressType"&gt; ... &lt;xsd:sequence&gt; &lt;xsd:element
ref="cbc:CityName" minOccurs="0" maxOccurs="1"&gt; ... &lt;/xsd:element&gt;
&lt;xsd:element ref="cbc:PostalZone" minOccurs="0" maxOccurs="1"&gt; ...
&lt;/xsd:element&gt; ... &lt;/xsd:sequence&gt;
&lt;/xsd:complexType&gt;</CodeExample>
</Guidance></Classification><Classification><ClassificationName>[NMS] Namespace
Rule</ClassificationName>
<Guidance guidanceID="rule-NMS1" documentationID="rule-NMS1"
prefixToken="NMS1"> <EnforcementLevel/> <GuidanceText> Every UBL-defined –or
-used schema module, except internal schema modules, MUST have a namespace
declared using the xsd:targetNamespace attribute.</GuidanceText> </Guidance>
<Guidance guidanceID="rule-NMS2" documentationID="rule-NMS2"
prefixToken="NMS2"> <EnforcementLevel/> <GuidanceText> Every UBL-defined-or
-used major version schema set MUST have its own unique
namespace.</GuidanceText> </Guidance>
<Guidance guidanceID="rule-NMS3" documentationID="rule-NMS3"
prefixToken="NMS3"> <EnforcementLevel/> <GuidanceText> UBL namespaces MUST only
contain UBL developed schema modules.</GuidanceText> </Guidance>
<Guidance guidanceID="rule-NMS4" documentationID="rule-NMS4"
prefixToken="NMS4"> <EnforcementLevel/> <GuidanceText> The namespace names for
UBL Schemas holding committee draft status MUST be of the form:</GuidanceText>
</Guidance>
<Guidance guidanceID="rule-NMS5" documentationID="rule-NMS5"
prefixToken="NMS5"> <EnforcementLevel/> <GuidanceText> The namespace names for
UBL Schemas holding OASIS Standard status MUST be of the
form:urn:oasis:names:specification:ubl:schema:&lt;subtype&gt;:&lt;document-id&gt;
</GuidanceText> </Guidance>
<Guidance guidanceID="rule-NMS6" documentationID="rule-NMS6"
prefixToken="NMS6"> <EnforcementLevel/> <GuidanceText> UBL published namespaces
MUST never be changed. </GuidanceText> </Guidance>
<Guidance guidanceID="rule-NMS7" documentationID="rule-NMS7"
prefixToken="NMS7"> <EnforcementLevel/> <GuidanceText> The
ubl:CommonAggregateComponents schema module MUST reside in its own
namespace.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-NMS8" documentationID="rule-NMS8"
prefixToken="NMS8"> <EnforcementLevel/> <GuidanceText> The
ubl:CommonAggregateComponents schema module namespace MUST be represented by
the namespace prefix “cac” when referenced in other schemas.</GuidanceText>
</Guidance>
<Guidance guidanceID="rule-NMS9" documentationID="rule-NMS9"
prefixToken="NMS9"> <EnforcementLevel/> <GuidanceText> The
ubl:CommonBasicComponents schema module MUST reside in its own
namespace.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-NMS10" documentationID="rule-NMS10"
prefixToken="NMS10"> <EnforcementLevel/> <GuidanceText> The
UBL:CommonBasicComponents schema module namespace MUST be represented by the
namespace prefix “cbc” when referenced in other schemas.</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-NMS17" documentationID="rule-NMS17"
prefixToken="NMS17"> <EnforcementLevel/> <GuidanceText> The
ccts:UnqualifiedDatatypes schema module namespace MUST be represented by the
token “udt” when referenced in other schemas.</GuidanceText> </Guidance>
<Guidance guidanceID="rule-NMS15" documentationID="rule-NMS15"
prefixToken="NMS15"> <EnforcementLevel/> <GuidanceText> The
ubl:QualifiedDatatypes schema module MUST reside in its own
namespace.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-NMS16" documentationID="rule-NMS16"
prefixToken="NMS16"> <EnforcementLevel/> <GuidanceText> The
ubl:QualifiedDatatypes schema module namespace MUST be represented by the
namespace prefix “qdt” when referenced in other schemas.</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-NMS18" documentationID="rule-NMS18"
prefixToken="NMS18"> <EnforcementLevel/> <GuidanceText> The
CommonExtensionComponent schema module namespace MUST be represented by the
namespace prefix 'ext' when referenced in other schemas. </GuidanceText>
</Guidance></Classification><Classification><ClassificationName>[VER]
Versioning Rules</ClassificationName>
<Guidance guidanceID="rule-VER1" documentationID="rule-VER1"
prefixToken="VER1"> <EnforcementLevel/> <GuidanceText> Every UBL Schema and
schema module major version committee draft MUST have an RFC 3121 document-id
of the form </GuidanceText> </Guidance> 
<Guidance guidanceID="rule-VER11" documentationID="rule-VER11"
prefixToken="VER11"> <EnforcementLevel/> <GuidanceText> Every UBL Schema and
schema module major version committee draft MUST capture its version number in
the xsd:version attribute of the xsd:schema element in the form</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-VER2" documentationID="rule-VER2"
prefixToken="VER2"> <EnforcementLevel/> <GuidanceText> Every UBL Schema and
schema module major version OASIS Standard MUST have an RFC 3121 document-id of
the form </GuidanceText> </Guidance> 
<Guidance guidanceID="rule-VER12" documentationID="rule-VER12"
prefixToken="VER12"> <EnforcementLevel/> <GuidanceText> Every UBL Schema and
schema module major version OASIS Standard MUST capture its version number in
the xsd:version attribute of the xsd:schema element in the form</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-VER3" documentationID="rule-VER3"
prefixToken="VER3"> <EnforcementLevel/> <GuidanceText> Every minor version
release of a UBL schema or schema module draft MUST have an RFC 3121
document-id of the form</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-VER13" documentationID="rule-VER13"
prefixToken="VER13"> <EnforcementLevel/> <GuidanceText> Every minor version
release of a UBL schema or schema module draft MUST capture its version
information in the xsd:version attribute in the form</GuidanceText> </Guidance>
<Guidance guidanceID="rule-VER4" documentationID="rule-VER4"
prefixToken="VER4"> <EnforcementLevel/> <GuidanceText> Every minor version
release of a UBL schema or schema module OASIS Standard MUST have an RFC 3121
document-id of the form</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-VER14" documentationID="rule-VER14"
prefixToken="VER14"> <EnforcementLevel/> <GuidanceText> Every minor version
release of a UBL schema or schema module OASIS Standard MUST capture its
version information in the xsd:version attribute in the form</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-VER5" documentationID="rule-VER5"
prefixToken="VER5"> <EnforcementLevel/> <GuidanceText> For UBL Minor version
changes the namespace name MUST not change, </GuidanceText> </Guidance> 
<Guidance guidanceID="rule-VER6" documentationID="rule-VER6"
prefixToken="VER6"> <EnforcementLevel/> <GuidanceText> Every UBL Schema and
schema module major version number MUST be a sequentially assigned, incremental
number greater than zero.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-VER7" documentationID="rule-VER7"
prefixToken="VER7"> <EnforcementLevel/> <GuidanceText> Every UBL Schema and
schema module minor version number MUST be a sequentially assigned, incremental
non-negative integer.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-VER15" documentationID="rule-VER15"
prefixToken="VER15"> <EnforcementLevel/> <GuidanceText> Every UBL document
schema MUST include a required element named "UBLVersionID" as the first child
of its root element. This element MUST have a default value that matches the
value of the xsd:version attribute of its containing schema.</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-VER8" documentationID="rule-VER8"
prefixToken="VER8"> <EnforcementLevel/> <GuidanceText> A UBL minor version
document schema MUST import its immediately preceding version document
schema.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-VER9" documentationID="rule-VER9"
prefixToken="VER9"> <EnforcementLevel/> <GuidanceText> UBL Schema and schema
module minor version changes MUST be limited to the use of xsd:extension or
xsd:restriction to alter existing types or add new constructs.</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-VER10" documentationID="rule-VER10"
prefixToken="VER10"> <EnforcementLevel/> <GuidanceText> UBL Schema and schema
module minor version changes MUST not break semantic compatibility with prior
versions.</GuidanceText> </Guidance></Classification><Classification>
<ClassificationName>[SSM] Schema Structure Modularity
Rules</ClassificationName>
<Guidance guidanceID="rule-SSM1" documentationID="rule-SSM1"
prefixToken="SSM1"> <EnforcementLevel/> <GuidanceText> UBL Schema expressions
MAY be split into multiple schema modules.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM2" documentationID="rule-SSM2"
prefixToken="SSM2"> <EnforcementLevel/> <GuidanceText> A document schema in one
UBL namespace that is dependent upon type definitions or element declarations
defined in another namespace MUST only import the document schema from that
namespace. </GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM3" documentationID="rule-SSM3"
prefixToken="SSM3"> <EnforcementLevel/> <GuidanceText> A document schema in one
UBL namespace that is dependant upon type definitions or element declarations
defined in another namespace MUST NOT import internal schema modules from that
namespace.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM4" documentationID="rule-SSM4"
prefixToken="SSM4"> <EnforcementLevel/> <GuidanceText> Imported schema modules
MUST be fully conformant with UBL naming and design rules.</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-SSM5" documentationID="rule-SSM5"
prefixToken="SSM5"> <EnforcementLevel/> <GuidanceText> UBL schema modules MUST
either be treated as external schema modules or as internal schema modules of
the document schema.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM6" documentationID="rule-SSM6"
prefixToken="SSM6"> <EnforcementLevel/> <GuidanceText> All UBL internal schema
modules MUST be in the same namespace as their corresponding document
schema.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM7" documentationID="rule-SSM7"
prefixToken="SSM7"> <EnforcementLevel/> <GuidanceText> Each UBL internal schema
module MUST be named
{ParentSchemaModuleName}{InternalSchemaModuleFunction}{schema
module}</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM8" documentationID="rule-SSM8"
prefixToken="SSM8"> <EnforcementLevel/> <GuidanceText> A UBL schema module MAY
be created for reusable components.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM21" documentationID="rule-SSM21"
prefixToken="SSM21"> <EnforcementLevel/> <GuidanceText> The UBL extensions
schema module MUST be identified as CommonExtensionComponents in the document
name within the schema header.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM9" documentationID="rule-SSM9"
prefixToken="SSM9"> <EnforcementLevel/> <GuidanceText> A schema module defining
all UBL Common Aggregate Components MUST be created.</GuidanceText> </Guidance>
<Guidance guidanceID="rule-SSM10" documentationID="rule-SSM10"
prefixToken="SSM10"> <EnforcementLevel/> <GuidanceText> The UBL Common
Aggregate Components schema module MUST be identified as
CommonAggregateComponents in the document name within the schema
header.</GuidanceText> </Guidance>
<Guidance guidanceID="rule-SSM11" documentationID="rule-SSM11"
prefixToken="SSM11"> <EnforcementLevel/> <GuidanceText> A schema module
defining all UBLCommon Basic Components MUST be created.</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-SSM12" documentationID="rule-SSM12"
prefixToken="SSM12"> <EnforcementLevel/> <GuidanceText> The UBL Common Basic
Components schema module MUST be identified as CommonBasicComponents in the
document name within the schema header.</GuidanceText> </Guidance>
<Guidance guidanceID="rule-SSM18" documentationID="rule-SSM18"
prefixToken="SSM18"> <EnforcementLevel/> <GuidanceText> A schema module
defining all UBL Qualified Datatypes MUST be created.</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-SSM20" documentationID="rule-SSM20"
prefixToken="SSM20"> <EnforcementLevel/> <GuidanceText> The UBL Qualified
Datatypes schema module MUST import the ccts:UnQualifiedDatatypes schema
module.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-SSM19" documentationID="rule-SSM19"
prefixToken="SSM19"> <EnforcementLevel/> <GuidanceText> The UBL Qualified
Datatypes schema module MUST be identified as QualifiedDatatypes in the
document name in the schema header.</GuidanceText>
</Guidance></Classification><Classification><ClassificationName>[DOC]
Documentation Rules</ClassificationName>
<Guidance guidanceID="rule-DOC1" documentationID="rule-DOC1"
prefixToken="DOC1"> <EnforcementLevel/> <GuidanceText> The xsd:documentation
element for every Datatype MUST contain a structured set of annotations in the
following sequence and pattern (as defined in CCTS Section 7): </GuidanceText>
</Guidance>
<Guidance guidanceID="rule-DOC2" documentationID="rule-DOC2"
prefixToken="DOC2"> <EnforcementLevel/> <GuidanceText> A Datatype definition
MAY contain one or more Content Component Restrictions to provide additional
information on the relationship between the Datatype and its corresponding Core
Component Type. If used the Content Component Restrictions must contain a
structured set of annotations in the following patterns:</GuidanceText>
</Guidance> 
<Guidance guidanceID="rule-DOC3" documentationID="rule-DOC3"
prefixToken="DOC3"> <EnforcementLevel/> <GuidanceText> A Datatype definition
MAY contain one or more Supplementary Component Restrictions to provide
additional information on the relationship between the Datatype and its
corresponding Core Component Type. If used the Supplementary Component
Restrictions must contain a structured set of annotations in the following
patterns:</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-DOC4" documentationID="rule-DOC4"
prefixToken="DOC4"> <EnforcementLevel/> <GuidanceText> The xsd:documentation
element for every Basic Business Information Entity MUST contain a structured
set of annotations in the following patterns:</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-DOC5" documentationID="rule-DOC5"
prefixToken="DOC5"> <EnforcementLevel/> <GuidanceText> The xsd:documentation
element for every Aggregate Business Information Entity MUST contain a
structured set of annotations in the following sequence and
pattern:</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-DOC6" documentationID="rule-DOC6"
prefixToken="DOC6"> <EnforcementLevel/> <GuidanceText> The xsd:documentation
element for every Association Business Information Entity element declaration
MUST contain a structured set of annotations in the following sequence and
pattern:</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-DOC8" documentationID="rule-DOC8"
prefixToken="DOC8"> <EnforcementLevel/> <GuidanceText> The xsd:documentation
element for every Supplementary Component attribute declarationMUST contain a
structured set of annotations in the following sequence and
pattern:</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-DOC9" documentationID="rule-DOC9"
prefixToken="DOC9"> <EnforcementLevel/> <GuidanceText> The xsd:documentation
element for every Supplementary Component attribute declaration containing
restrictions MUST include the following additional information appended to the
information required by DOC8:</GuidanceText>
</Guidance></Classification><Classification><ClassificationName>[GNR] General
Naming Rules</ClassificationName>
<Guidance guidanceID="rule-GNR1" documentationID="rule-GNR1"
prefixToken="GNR1"> <EnforcementLevel/> <GuidanceText> UBL XML element and type
names MUST be in the English language, using the primary English spellings
provided in the Oxford English Dictionary.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR2" documentationID="rule-GNR2"
prefixToken="GNR2"> <EnforcementLevel/> <GuidanceText> UBL XML element and type
names MUST be consistently derived from CCTS conformant dictionary entry
names.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR3" documentationID="rule-GNR3"
prefixToken="GNR3"> <EnforcementLevel/> <GuidanceText> UBL XML element and type
names constructed from ccts:DictionaryEntryNames MUST NOT include periods,
spaces, other separators, or characters not allowed by W3C XML 1.0 for XML
names. </GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR4" documentationID="rule-GNR4"
prefixToken="GNR4"> <EnforcementLevel/> <GuidanceText> UBL XML element, and
simple and complex type names MUST NOT use acronyms, abbreviations, or other
word truncations, except those in the list of exceptions published in Appendix
B.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR5" documentationID="rule-GNR5"
prefixToken="GNR5"> <EnforcementLevel/> <GuidanceText> Acronyms and
abbreviations MUST only be added to the UBL approved acronym and abbreviation
list after careful consideration for maximum understanding and
reuse.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR6" documentationID="rule-GNR6"
prefixToken="GNR6"> <EnforcementLevel/> <GuidanceText> The acronyms and
abbreviations listed in Appendix B MUST always be used in place of the word or
phrase they represent.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR7" documentationID="rule-GNR7"
prefixToken="GNR7"> <EnforcementLevel/> <GuidanceText> UBL XML element, and
type names MUST be in singular form unless the concept itself is
plural.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR10" documentationID="rule-GNR10"
prefixToken="GNR10"> <EnforcementLevel/> <GuidanceText> Acronyms and
abbreviations at the beginning of an attribute name MUST appear in all lower
case. All other acronym and abbreviation usage in an attribute declaration MUST
appear in upper case.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR11" documentationID="rule-GNR11"
prefixToken="GNR11"> <EnforcementLevel/> <GuidanceText> Acronyms and
abbreviations MUST appear in all upper case for all element declarations and
type definitions.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-GNR8" documentationID="rule-GNR8"
prefixToken="GNR8"> <EnforcementLevel/> <GuidanceText> The UpperCamelCase (UCC)
convention MUST be used for naming elements and types.Example:</GuidanceText>
</Guidance></Classification><Classification><ClassificationName>[CTN]
ComplexType Naming Rules </ClassificationName>
<Guidance guidanceID="rule-CTN1" documentationID="rule-CTN1"
prefixToken="CTN1"> <EnforcementLevel/> <GuidanceText> A UBL xsd:complexType
name based on an ccts:AggregateBusinessInformationEntity MUST be the
ccts:DictionaryEntryName with the separators removed and with the “Details”
suffix replaced with “Type”.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTN2" documentationID="rule-CTN2"
prefixToken="CTN2"> <EnforcementLevel/> <GuidanceText> A UBL xsd:complexType
name based on a ccts:BasicBusinessInformationEntityProperty MUST be the
ccts:DictionaryEntryName shared property term and its qualifiers and
representation term of the ccts:BasicBusinessInformationEntity, with the
separators removed and with the “Type” suffix appended after the representation
term.</GuidanceText> <CodeExample> &lt;!--===== Basic Business Information
Entity Type Definitions ===== --&gt; &lt;xsd:complexType
name="ChargeIndicatorType"&gt; ... &lt;/xsd:comlextType&gt;</CodeExample>
</Guidance> 
<Guidance guidanceID="rule-CTNX1" documentationID="rule-CTNX1"
prefixToken="CTNX1"> <EnforcementLevel/> <GuidanceText> A UBL xsd:complexType
name based on a ccts:BasicBusinessInformationEntityProperty and with a .
ccts:BasicBusinessInformationEntityRepresentationTerm of 'Text' MUST have the
word "Text" removed from the end of its name.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTNX2" documentationID="rule-CTNX2"
prefixToken="CTNX2"> <EnforcementLevel/> <GuidanceText> A UBL xsd:complexType
name based on a ccts:BasicBusinessInformationEntityProperty and with a .
ccts:BasicBusinessInformationEntityRepresentationTerm of 'Identifier' MUST have
the word "Identifier" replaced by the word "ID" at the end of its
name.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTNX3" documentationID="rule-CTNX3"
prefixToken="CTNX3"> <EnforcementLevel/> <GuidanceText> A UBL xsd:complexType
name based on a ccts:BasicBusinessInformationEntityProperty MUST remove all
duplication of words that occur as a result of duplicate property terms and
representation terms.</GuidanceText>
</Guidance></Classification><Classification><ClassificationName>[ELN] Element
Naming Rules</ClassificationName>
<Guidance guidanceID="rule-ELN1" documentationID="rule-ELN1"
prefixToken="ELN1"> <EnforcementLevel/> <GuidanceText> A UBL global element
name based on a ccts:ABIE MUST be the same as the name of the corresponding
xsd:complexType to which it is bound, with the word “Type”
removed.</GuidanceText> <CodeExample>&lt;xsd:element name="Party"
type="PartyType"/&gt; &lt;xsd:complexType name="PartyType"&gt;
&lt;xsd:annotation&gt; —!--Documentation goes here--&gt;
&lt;/xsd:annotation&gt; &lt;xsd:sequence&gt; &lt;xsd:element
ref="cbc:MarkCareIndicator" minOccurs="0" maxOccurs="1"&gt; ...
&lt;/xsd:element&gt; &lt;xsd:element ref="cbc:MarkAttentionIndicator"
minOccurs="0" maxOccurs="1"&gt; ... &lt;/xsd:element&gt; &lt;xsd:element
ref="PartyIdentification" minOccurs="0" maxOccurs="unbounded"&gt; ...
&lt;/xsd:element&gt; &lt;xsd:element ref="PartyName" minOccurs="0"
maxOccurs="1"&gt; ... &lt;/xsd:element&gt; &lt;xsd:element ref="Address"
minOccurs="0" maxOccurs="1"&gt; ... &lt;/xsd:element&gt; ...
&lt;/xsd:sequence&gt;</CodeExample> </Guidance>
<Guidance guidanceID="rule-ELN2" documentationID="rule-ELN2"
prefixToken="ELN2"> <EnforcementLevel/> <GuidanceText> A UBL global element
name based on a ccts:BBIEProperty MUST be the same as the name of the
corresponding xsd:complexType to which it is bound, with the word “Type”
removed.</GuidanceText> <CodeExample>&lt;!--===== Basic Business Information
Entity Type Definitions =====--&gt; &lt;xsd:complexType
name="ChargeIndicatorType"&gt; ... &lt;/xsd:comlextType&gt; ... &lt;!--=====
Basic Business Information Entity Property Element Declarations =====--&gt;
&lt;xsd:element name="ChargeIndicator"
type="ChargeIndicatorType"/&gt;</CodeExample> </Guidance> 
<Guidance guidanceID="rule-ELN3" documentationID="rule-ELN3"
prefixToken="ELN3"> <EnforcementLevel/> <GuidanceText> A UBL global element
name based on a ccts:ASBIE MUST be the ccts:ASBIE dictionary entry name
property term and its qualifiers; and the object class term and qualifiers of
its associated ccts:ABIE. All ccts:DictionaryEntryName separators MUST be
removed..</GuidanceText> </Guidance></Classification><Classification>
<ClassificationName>[GTD]</ClassificationName>
<Guidance guidanceID="rule-GTD1" documentationID="rule-GTD1"
prefixToken="GTD1"> <EnforcementLevel/> <GuidanceText> All types MUST be
named.</GuidanceText> <CodeExample><CodeExample>&lt;xsd:complexType
name="QuantityType"&gt;</CodeExample>...</CodeExample> 
<CodeExample>&lt;/xsd:complexType&gt;</CodeExample> </Guidance>
<Guidance guidanceID="rule-GTD2" documentationID="rule-GTD2"
prefixToken="GTD2"> <EnforcementLevel/> <GuidanceText> The xsd:anyType MUST NOT
be used.</GuidanceText> </Guidance></Classification><Classification>
<ClassificationName>[CTD] ComplexType Definition Rules</ClassificationName>
<Guidance guidanceID="rule-CTD1" documentationID="rule-CTD1"
prefixToken="CTD1"> <EnforcementLevel/> <GuidanceText> For every class and
property identified in the UBL model, a named xsd:complexType MUST be
defined.</GuidanceText> <CodeExample>&lt;xsd:complexType
name="BuildingNameType"&gt; &lt;/xsd:complexType&gt;</CodeExample> </Guidance>
<Guidance guidanceID="rule-CTD25" documentationID="rule-CTD25"
prefixToken="CTD25"> <EnforcementLevel/> <GuidanceText> For every
ccts:BBIEProperty identified in the UBL model a named xsd:complexType must be
defined.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTD2" documentationID="rule-CTD2"
prefixToken="CTD2"> <EnforcementLevel/> <GuidanceText> Every ccts:ABIE
xsd:complexType definition content model MUST use the xsd:sequence element
containing references to the appropriate global element
declarations.</GuidanceText> <CodeExample>&lt;xsd:complexType
name=”AddressType”&gt; ... &lt;xsd:sequence&gt; &lt;xsd:element
ref=”cbc:CityName” minOccurs=”0” maxOccurs=”1”&gt; ... &lt;/xsd:element&gt;
&lt;xsd:element ref=”cbc:PostalZone” minOccurs=”0” maxOccurs=”1”&gt; ...
&lt;/xsd:element&gt;... &lt;/xsd:sequence&gt;
&lt;/xsd:complexType&gt;</CodeExample> </Guidance> 
<Guidance guidanceID="rule-CTD3" documentationID="rule-CTD3"
prefixToken="CTD3"> <EnforcementLevel/> <GuidanceText> Every ccts:BBIEProperty
xsd:complexType definition content model MUST use the xsd:simpleContent
element.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTD4" documentationID="rule-CTD4"
prefixToken="CTD4"> <EnforcementLevel/> <GuidanceText> Every ccts:BBIEProperty
xsd:complexType content model xsd:simpleContent element MUST consist of an
xsd:extension element. </GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTD5" documentationID="rule-CTD5"
prefixToken="CTD5"> <EnforcementLevel/> <GuidanceText> Every ccts:BBIEProperty
xsd:complexType content model xsd:base attribute value MUST be the UN/CEFACT
Unqualified Datatype or UBL Qualified Datatype as appropriate.</GuidanceText> 
<CodeExample> &lt;xsd:complexType name="StreetNameType”&gt;
&lt;xsd:simpleContent&gt; &lt;xsd:extension base=”udt:NameType”/&gt;
&lt;/xsd:simpleContent&gt; &lt;/xsd:complexType&gt;</CodeExample> </Guidance> 
<Guidance guidanceID="rule-CTD6" documentationID="rule-CTD6"
 prefixToken="CTD6"> <EnforcementLevel/> <GuidanceText> For every Qualified
Datatype used in the UBL model, a named xsd:complexType or xsd:simpleType MUST
be defined.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTD20" documentationID="rule-CTD20"
 prefixToken="CTD20"> <EnforcementLevel/> <GuidanceText> A
ccts:QualifiedDataType MUST be based on an unqualified data type and add some
semantic and/or technical restriction to the unqualified data
type.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTD21" documentationID="rule-CTD21"
 prefixToken="CTD21"> <EnforcementLevel/> <GuidanceText> The name of a
ccts:QualifiedDataType MUST be the name of its base ccts:UnqualifiedDataType
with separators and spaces removed and with its qualifier term
added.</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTD22" documentationID="rule-CTD22"
 prefixToken="CTD22"> <EnforcementLevel/> <GuidanceText> Every qualified
datatype based on an unqualified datatype xsd:complexType whose supplementary
components map directly to the properties of an XSD built-in data
type</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTD23" documentationID="rule-CTD23"
 prefixToken="CTD23"> <EnforcementLevel/> <GuidanceText> Every qualified
datatype based on an unqualified datatype xsd:complexType whose supplementary
components do not map directly to the properties of an XSD built-in data
type</GuidanceText> </Guidance> 
<Guidance guidanceID="rule-CTD24" documentationID="rule-CTD24"
 prefixToken="CTD24"> <EnforcementLevel/> <GuidanceText> Every qualified
datatype based on an unqualified datatype xsd:simpleType </GuidanceText> 
<CodeExample> UBL has adopted UN/CEFACT's Core Component Type schema
module.</CodeExample> </Guidance> </Classification></NDRProfile>
