Draft. See "Content Assembly Mechanism (CAM) Specifications and Description Document." Edited by David Webber. Draft Version 1.0. Produced by the OASIS Content Assembly Mechanism Technical Committee. 69 pages. ZIP file contains the schema and DTD.
<!-- CAM structure for OASIS CAM. February 12th, 2003
Modification history:
1.00 Initial
Copyright (c) 2003 OASIS. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that such redistributions retain
this copyright notice.
This CAM structure is provided "as is" and there are no
expressed or implied warranties.
In no event shall OASIS be liable for any
damages arising out of the use of this structure. -->
<!ELEMENT CAM (AssemblyStructure, BusinessUseContext?, ContentReference?, DataValidations?, ExternalMapping?, annotation?) >
<!ELEMENT AssemblyStructure (Header, Declaration*, Structure+)>
<!ELEMENT Header (CAMlevel, Description?, Owner?, Version?, DateTime)>
<!ELEMENT CAMlevel EMPTY>
<!ATTLIST CAMlevel
value (1 | 2 | 3) #REQUIRED >
<!ELEMENT Description (#PCDATA) >
<!ELEMENT Owner (#PCDATA) >
<!ELEMENT Version (#PCDATA) >
<!ELEMENT DateTime (#PCDATA) >
<!ELEMENT Declaration EMPTY >
<!ATTLIST Declaration
parameter CDATA #REQUIRED
values CDATA #IMPLIED
default CDATA #IMPLIED
datatype CDATA #IMPLIED >
<!ELEMENT Structure ANY >
<!ATTLIST Structure
ID CDATA #IMPLIED
reference CDATA #IMPLIED
taxonomy (UID | XSD | DTD | RNG | XML) #REQUIRED >
<!ELEMENT BusinessUseContext (Rules)>
<!ELEMENT Rules (default?, context*)>
<!ELEMENT default (context+ | constraint+ )>
<!ELEMENT context (context+ | constraint+ )>
<!ATTLIST context
condition CDATA #REQUIRED
>
<!ELEMENT ContentReference (Addressing,item+)>
<!ELEMENT Addressing (registry+)>
<!ELEMENT constraint EMPTY >
<!ATTLIST constraint
condition CDATA #IMPLIED
action CDATA #REQUIRED >
<!-- predicates ( excludeAttribute | excludeElement | excludeTree |
makeOptional | makeMandatory | makeRepeatable |
setChoice | setId | setLength | setLimit | setMask |
setValue | restrictValues | restrictValuesByUID |
useAttribute | useChoice | useElement | useTree |
useAttributeByID | useChoiceByID | useElementByID |
useTreeByID ) -->
<!ELEMENT DataValidations ( Conditions+ )>
<!ELEMENT Conditions ( conditional+ )>
<!ATTLIST Conditions
condition CDATA #IMPLIED >
<!ELEMENT conditional EMPTY >
<!ATTLIST conditional
expression CDATA #REQUIRED
syntax (XPath | JavaScript | VB | Perl | Other) #IMPLIED
outcome ( fail | ignore | report ) #REQUIRED
message CDATA #IMPLIED
test ( always | postcheck | precheck ) #REQUIRED >
<!ELEMENT registry EMPTY>
<!ATTLIST registry
name CDATA #REQUIRED
access CDATA #REQUIRED
method (URL | http | SOAP | ebXML | UDDI | Other) #REQUIRED
description CDATA #IMPLIED
>
<!ELEMENT item EMPTY>
<!ATTLIST item
type (noun | corecomponent | BIE | BRIC | defaultAssembly | identifier | verb | schema | documentation) #REQUIRED
name CDATA #IMPLIED
UIDReference CDATA #REQUIRED
taxonomy CDATA #REQUIRED
registry CDATA #IMPLIED
datatype CDATA #IMPLIED
setlength CDATA #IMPLIED
setmask CDATA #IMPLIED
>
<!ELEMENT annotation (documentation+) >
<!ELEMENT documentation (#PCDATA) >
<!ATTLIST documentation
type (description | note | license | usage | other) #REQUIRED >
<!ELEMENT ExternalMapping (ContentAssociation+) >
<!ELEMENT ContentAssociation (Description?,InputSource,OutputStore,RulesSet) >
<!ELEMENT InputSource EMPTY >
<!ATTLIST InputSource
type ( SQL | XML | EDI | TXT | ODBC | OTHER ) #IMPLIED
location CDATA #IMPLIED >
<!ELEMENT OutputStore EMPTY >
<!ATTLIST OutputStore
type ( SQL | XML | EDI | TXT | ODBC | OTHER ) #IMPLIED
location CDATA #IMPLIED >
<!ELEMENT RulesSet (MapRule+) >
<!ELEMENT MapRule EMPTY >
<!ATTLIST MapRule
output CDATA #REQUIRED
input CDATA #REQUIRED >