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 >