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.
<?xml version="1.0" encoding="UTF-8"?> <!-- 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. --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="Addressing"> <xs:complexType> <xs:sequence> <xs:element ref="registry" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AssemblyStructure"> <xs:complexType> <xs:sequence> <xs:element ref="Header"/> <xs:element ref="Declaration" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="Structure" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="BusinessUseContext"> <xs:complexType> <xs:sequence> <xs:element ref="Rules"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CAM"> <xs:complexType> <xs:sequence> <xs:element ref="AssemblyStructure"/> <xs:element ref="BusinessUseContext" minOccurs="0"/> <xs:element ref="ContentReference" minOccurs="0"/> <xs:element ref="DataValidations" minOccurs="0"/> <xs:element ref="ExternalMapping" minOccurs="0"/> <xs:element ref="annotation" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CAMlevel"> <xs:complexType> <xs:attribute name="value" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="1"/> <xs:enumeration value="2"/> <xs:enumeration value="3"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="Conditions"> <xs:complexType> <xs:sequence> <xs:element ref="conditional" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="condition" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="ContentAssociation"> <xs:complexType> <xs:sequence> <xs:element ref="Description" minOccurs="0"/> <xs:element ref="InputSource"/> <xs:element ref="OutputStore"/> <xs:element ref="RulesSet"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ContentReference"> <xs:complexType> <xs:sequence> <xs:element ref="Addressing"/> <xs:element ref="item" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DataValidations"> <xs:complexType> <xs:sequence> <xs:element ref="Conditions" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="DateTime" type="xs:string"/> <xs:element name="Declaration"> <xs:complexType> <xs:attribute name="parameter" type="xs:string" use="required"/> <xs:attribute name="values" type="xs:string"/> <xs:attribute name="default" type="xs:string"/> <xs:attribute name="datatype" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="Description" type="xs:string"/> <xs:element name="ExternalMapping"> <xs:complexType> <xs:sequence> <xs:element ref="ContentAssociation" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Header"> <xs:complexType> <xs:sequence> <xs:element ref="CAMlevel"/> <xs:element ref="Description" minOccurs="0"/> <xs:element ref="Owner" minOccurs="0"/> <xs:element ref="Version" minOccurs="0"/> <xs:element ref="DateTime"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="InputSource"> <xs:complexType> <xs:attribute name="type"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="SQL"/> <xs:enumeration value="XML"/> <xs:enumeration value="EDI"/> <xs:enumeration value="TXT"/> <xs:enumeration value="ODBC"/> <xs:enumeration value="OTHER"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="location" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="MapRule"> <xs:complexType> <xs:attribute name="output" type="xs:string" use="required"/> <xs:attribute name="input" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="OutputStore"> <xs:complexType> <xs:attribute name="type"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="SQL"/> <xs:enumeration value="XML"/> <xs:enumeration value="EDI"/> <xs:enumeration value="TXT"/> <xs:enumeration value="ODBC"/> <xs:enumeration value="OTHER"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="location" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="Owner" type="xs:string"/> <xs:element name="Rules"> <xs:complexType> <xs:sequence> <xs:element ref="default" minOccurs="0"/> <xs:element ref="context" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="RulesSet"> <xs:complexType> <xs:sequence> <xs:element ref="MapRule" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Structure"> <xs:complexType mixed="true"> <xs:attribute name="ID" type="xs:string"/> <xs:attribute name="reference" type="xs:string"/> <xs:attribute name="taxonomy" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="UID"/> <xs:enumeration value="XSD"/> <xs:enumeration value="DTD"/> <xs:enumeration value="RNG"/> <xs:enumeration value="XML"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="Version" type="xs:string"/> <xs:element name="annotation"> <xs:complexType> <xs:sequence> <xs:element ref="documentation" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="conditional"> <xs:complexType> <xs:attribute name="expression" type="xs:string" use="required"/> <xs:attribute name="syntax"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="XPath"/> <xs:enumeration value="JavaScript"/> <xs:enumeration value="VB"/> <xs:enumeration value="Perl"/> <xs:enumeration value="Other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="outcome" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="fail"/> <xs:enumeration value="ignore"/> <xs:enumeration value="report"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="message" type="xs:string"/> <xs:attribute name="test" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="always"/> <xs:enumeration value="postcheck"/> <xs:enumeration value="precheck"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="constraint"> <xs:complexType> <xs:attribute name="condition" type="xs:string"/> <xs:attribute name="action" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="context"> <xs:complexType> <xs:choice> <xs:element ref="context" maxOccurs="unbounded"/> <xs:element ref="constraint" maxOccurs="unbounded"/> </xs:choice> <xs:attribute name="condition" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="default"> <xs:complexType> <xs:choice> <xs:element ref="context" maxOccurs="unbounded"/> <xs:element ref="constraint" maxOccurs="unbounded"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="documentation"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="description"/> <xs:enumeration value="note"/> <xs:enumeration value="license"/> <xs:enumeration value="usage"/> <xs:enumeration value="other"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="item"> <xs:complexType> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="noun"/> <xs:enumeration value="corecomponent"/> <xs:enumeration value="BIE"/> <xs:enumeration value="BRIC"/> <xs:enumeration value="defaultAssembly"/> <xs:enumeration value="identifier"/> <xs:enumeration value="verb"/> <xs:enumeration value="schema"/> <xs:enumeration value="documentation"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="UIDReference" type="xs:string" use="required"/> <xs:attribute name="taxonomy" type="xs:string" use="required"/> <xs:attribute name="registry" type="xs:string"/> <xs:attribute name="datatype" type="xs:string"/> <xs:attribute name="setlength" type="xs:string"/> <xs:attribute name="setmask" type="xs:string"/> </xs:complexType> </xs:element> <xs:element name="registry"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="access" type="xs:string" use="required"/> <xs:attribute name="method" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="URL"/> <xs:enumeration value="http"/> <xs:enumeration value="SOAP"/> <xs:enumeration value="ebXML"/> <xs:enumeration value="UDDI"/> <xs:enumeration value="Other"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="description" type="xs:string"/> </xs:complexType> </xs:element> </xs:schema>