The CRUL DTD

This document contains the definition of CRUL as a DTD. If you need to know which elements and attributes CRUL supports, you can find them here. The DTD is subject to change.

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT cm-payload (cm-header, (cm-request+ | cm-response+))>
<!ATTLIST cm-payload
	payload-id CDATA #REQUIRED
	timestamp CDATA #REQUIRED
	cm.version CDATA #REQUIRED
>
<!ENTITY % cm.atom "#PCDATA">
<!ENTITY % cm.dictitem "dictitem">
<!ENTITY % cm.listitem "listitem">
<!ELEMENT listitem (%cm.atom; | %cm.listitem; | %cm.dictitem;)*>
<!ELEMENT dictitem (key, value)>
<!ELEMENT key (%cm.atom;)>
<!ELEMENT value (%cm.atom; | %cm.listitem; | %cm.dictitem;)*>
<!ENTITY % cm.date "
 (%cm.atom; |
  isoDateTime |
   systemConfigFormattedTime |
  userConfigFormattedTime)*
">
<!ENTITY % cm.logEntry "
 (logEntryId,
  execResult,
  execStart,
  execEnd)
">
<!ELEMENT cm-header (cm-sender, cm-receiver?, cm-authentication?)>
<!ELEMENT cm-sender EMPTY>
<!ATTLIST cm-sender
	sender-id CDATA #REQUIRED
	name CDATA #REQUIRED
>
<!ELEMENT cm-receiver EMPTY>
<!ATTLIST cm-receiver
	receiver-id CDATA #REQUIRED
	name CDATA #REQUIRED
>
<!ELEMENT cm-authentication EMPTY>
<!ATTLIST cm-authentication
	login CDATA #REQUIRED
	password CDATA #REQUIRED
	session CDATA #REQUIRED
>

<!ELEMENT cm-response (cm-code*)>
<!ATTLIST cm-response
	response-id CDATA #REQUIRED
	request-id CDATA #IMPLIED
	payload-id CDATA #IMPLIED
	success (true | false) #REQUIRED
>
<!ELEMENT cm-code ANY>
<!ATTLIST cm-code
	numeric CDATA #REQUIRED
	phrase CDATA #REQUIRED
>
<!ENTITY % cm.cm-request "
 (app-get) |
 (app-execute) |
 (attribute-create) |
 (attribute-types) |
 (attribute-getValidEditFieldKeys) |
 (attribute-where+, attribute-addEnumValues) |
 (attribute-where+, attribute-delete) |
 (attribute-where+, attribute-get) |
 (attribute-where+, attribute-description) |
 (attribute-where+, attribute-removeEnumValues) |
 (attribute-where+, attribute-set) |
 (attributeGroup-create) |
 (attributeGroup-where+, attributeGroup-addAttributes)|
 (attributeGroup-where+, attributeGroup-delete) |
 (attributeGroup-where+, attributeGroup-get) |
 (attributeGroup-where+, attributeGroup-description) |
 (attributeGroup-where+, attributeGroup-moveAttribute) |
 (attributeGroup-where+, attributeGroup-moveToIndex) |
 (attributeGroup-where+, attributeGroup-removeAttributes) |
 (attributeGroup-where+, attributeGroup-set) |
 (channel-create) |
 (channel-where+, channel-delete) |
 (channel-where+, channel-description) |
 (channel-where+, channel-get) |
 (channel-where+, channel-set) |
 (content-where+, content-addLinkTo) |
 (content-where+, content-delete) |
 (content-where+, content-get) |
 (content-where+, content-description) |
 (content-where+, content-load) |
 (content-where+, content-resolveRefs) |
 (content-where+, content-set) |
 (content-where+, content-debugExport) |
 (contentService-editedOverview) |
 (contentService-releasedOverview) |
 (customCommand-execute) |
 (group-create) |
 (group-where+, group-addUsers) |
 (group-where+, group-delete) |
 (group-where+, group-get) |
 (group-where+, group-description) |
 (group-where+, group-grantGlobalPermissions) |
 (group-where+, group-removeUsers) |
 (group-where+, group-revokeGlobalPermissions) |
 (group-where+, group-set) |
 (groupProxy-where+, groupProxy-get) |
 (incrExport-get) |
 (incrExport-getUpdateData) |
 (incrExport-removeUpdateRecords) |
 (incrExport-reset) |
 (job-create) |
 (job-listQueue) |
 (job-where+, job-cancel) |
 (job-where+, job-delete) |
 (job-where+, job-exec) |
 (job-where+, job-get) |
 (job-where+, job-getLogEntry) |
 (job-where+, job-getOutput) |
 (job-where+, job-description) |
 (job-where+, job-set) |
 (licenseManager-license) |
 (licenseManager-licenseExpirationDate) |
 (licenseManager-licenseType) |
 (licenseManager-loginCount) |
 (licenseManager-logins) |
 (licenseManager-logout) |
 (licenseManager-maxConcurrentUsers) |
 (link-create) |
 (link-where+, link-delete) |
 (link-where+, link-get) |
 (link-where+, link-description) |
 (link-where+, link-set) |
 (logEntry-where+, logEntry-delete) |
 (logEntry-where+, logEntry-get) |
 (obj-contentTypesForObjType) |
 (obj-generatePreview) |
 (obj-search+, obj-addComment) |
 (obj-search+, obj-commit) |
 (obj-search+, obj-copy) |
 (obj-search+, obj-create) |
 (obj-search+, obj-delete) |
 (obj-search+, obj-edit) |
 (obj-search+, obj-exportSubtree) |
 (obj-search+, obj-forward) |
 (obj-search+, obj-get) |
 (obj-search+, obj-description) |
 (obj-search+, obj-give) |
 (obj-search+, obj-mirror) |
 (obj-search+, obj-permissionGrantTo) |
 (obj-search+, obj-permissionRevokeFrom) |
 (obj-search+, obj-reject) |
 (obj-search+, obj-release) |
 (obj-search+, obj-removeActiveContents) |
 (obj-search+, obj-removeArchivedContents) |
 (obj-search+, obj-revert) |
 (obj-search+, obj-set) |
 (obj-search+, obj-sign) |
 (obj-search+, obj-take) |
 (obj-search+, obj-unrelease) |
 (obj-types) |
 (obj-where+, obj-addComment) |
 (obj-where+, obj-commit) |
 (obj-where+, obj-copy) |
 (obj-where+, obj-create) |
 (obj-where+, obj-delete) |
 (obj-where+, obj-edit) |
 (obj-where+, obj-exportSubtree) |
 (obj-where+, obj-forward) |
 (obj-where+, obj-get) |
 (obj-where+, obj-description) |
 (obj-where+, obj-give) |
 (obj-where+, obj-mirror) |
 (obj-where+, obj-permissionGrantTo) |
 (obj-where+, obj-permissionRevokeFrom) |
 (obj-where+, obj-reject) |
 (obj-where+, obj-release) |
 (obj-where+, obj-removeActiveContents) |
 (obj-where+, obj-removeArchivedContents) |
 (obj-where+, obj-revert) |
 (obj-where+, obj-set) |
 (obj-where+, obj-sign) |
 (obj-where+, obj-take) |
 (obj-where+, obj-unrelease) |
 (objClass-create) |
 (objClass-goodAvailableBlobEditorsForObjType) |
 (objClass-validAttributes) |
 (objClass-where+, objClass-delete) |
 (objClass-where+, objClass-get) |
 (objClass-where+, objClass-description) |
 (objClass-where+, objClass-set) |
 (systemConfig-formatDate) |
 (systemConfig-formatDateTime) |
 (systemConfig-getAttributes) |
 (systemConfig-getCounts) |
 (systemConfig-getElements) |
 (systemConfig-getKeys) |
 (systemConfig-getTexts) |
 (systemConfig-parseInputDate) |
 (systemConfig-installedLanguages) |
 (systemConfig-validInputCharsets) |
 (systemConfig-validTimeZones) |
 (task-where+, task-get) |
 (task-where+, task-description) |
 (user-create) |
 (user-where+, user-addToGroups) |
 (user-where+, user-delete) |
 (user-where+, user-get) |
 (user-where+, user-description) |
 (user-where+, user-grantGlobalPermissions) |
 (user-where+, user-removeFromGroups) |
 (user-where+, user-revokeGlobalPermissions) |
 (user-where+, user-set) |
 (user-writeUserFile) |
 (userAttribute-create) |
 (userAttribute-types) |
 (userAttribute-where+, userAttribute-addEnumValues) |
 (userAttribute-where+, userAttribute-delete) |
 (userAttribute-where+, userAttribute-get) |
 (userAttribute-where+, userAttribute-description) |
 (userAttribute-where+, userAttribute-removeEnumValues) |
 (userAttribute-where+, userAttribute-set) |
 (userConfig-getAll) |
 (userConfig-formatDate) |
 (userConfig-formatDateTime) |
 (userConfig-getAttributes) |
 (userConfig-getCounts) |
 (userConfig-getElements) |
 (userConfig-getKeys) |
 (userConfig-getTexts) |
 (userConfig-parseInputDate) |
 (userConfig-removeAttributes) |
 (userConfig-removeKeys) |
 (userConfig-setAttributes) |
 (userConfig-setElements) |
 (userConfig-setTexts) |
 (userProxy-where+, userProxy-get) |
 (workflow-create) |
 (workflow-where+, workflow-delete) |
 (workflow-where+, workflow-get) |
 (workflow-where+, workflow-description) |
 (workflow-where+, workflow-set)
">

<!ELEMENT cm-request (%cm.cm-request;)>
<!ATTLIST cm-request
	request-id CDATA #REQUIRED
	preclusive (true | false) "false"
>

<!ENTITY % cm.app-get "
 (appName |
  baseDir |
  binDir |
  configDir |
  dataDir |
  debugChannels |
  debugLevel |
  getKeys |
  instanceDir |
  libDir |
  logDir |
  now |
  rootConfigPath |
  scriptDir |
  shareDir |
  timeZone |
  tmpDir |
  today |
  version)*
">
<!ENTITY % cm.app-execute "
 (command,
  arguments)
">
<!ENTITY % cm.attribute-addEnumValues "
 (listitem+)
">
<!ENTITY % cm.attribute-create "
 (callback |
  helpText |
  isSearchableInCM |
  isSearchableInTE |
  maxSize |
  minSize |
  name |
  title |
  type |
  values |
  wantedTags |
  editField)*
">
<!ENTITY % cm.attribute-delete "EMPTY">
<!ENTITY % cm.attribute-get "
 callback |
  displayTitle |
  displayValueCallback |
  editField |
  editFieldSpec |
  getKeys |
  helpText |
  isSearchableInCM |
  isSearchableInTE |
  localizedTitle |
  localizedHelpText |
  maxSize |
  minSize |
  name |
  setKeys |
  title |
  type |
  validEditFieldKeys |
  validEditFieldTypes |
  values |
  wantedTags
">
<!ENTITY % cm.attribute-getValidEditFieldKeys "(listitem)*">
<!ENTITY % cm.attribute-removeEnumValues "
 (listitem+)
">
<!ENTITY % cm.attribute-set "
 (callback |
  displayValueCallback |
  helpText |
  isSearchableInCM |
  isSearchableInTE |
  maxSize |
  minSize |
  title |
  type |
  values |
  wantedTags |
  editField)*
">
<!ENTITY % cm.attribute-types "(listitem)*">
<!ENTITY % cm.attribute-where "
 (name |
 (nameLike?,
  type?))?
">
<!ENTITY % cm.attributeGroup-addAttributes "(listitem)*">
<!ENTITY % cm.attributeGroup-create "
 (objClass,
  name,
  title?,
  index?)
">
<!ENTITY % cm.attributeGroup-delete "EMPTY">
<!ENTITY % cm.attributeGroup-get "
 attributes |
  displayTitle |
  localizedTitle |
  getKeys |
  index |
  isDefaultGroup |
  isEmpty |
  name |
  objClass |
  setKeys |
  title
">
<!ENTITY % cm.attributeGroup-moveAttribute "
 (attribute, index)
">
<!ENTITY % cm.attributeGroup-moveToIndex "
 (index)
">
<!ENTITY % cm.attributeGroup-removeAttributes "
 (listitem+)
">
<!ENTITY % cm.attributeGroup-set "
 (title)*
">
<!ENTITY % cm.attributeGroup-where "
 (objClass)
">
<!ENTITY % cm.channel-create "
 (name,
  title*)
">
<!ENTITY % cm.channel-delete "EMPTY">
<!ENTITY % cm.channel-get "
 (name |
  title)*
">
<!ENTITY % cm.channel-set "
 (name |
  title)*
">
<!ENTITY % cm.channel-where "
 (name |
  namePrefix)*
">
<!ENTITY % cm.content-addLinkTo "
 (attribute,
  destinationUrl)*
">
<!ENTITY % cm.content-delete "EMPTY">
<!ENTITY % cm.content-get "
  anchors |
  blob |
  blobLength |
  body |
  bodyTemplateName |
  codeForSourceView |
  contentType |
  displayTitle |
  editor |
  exportBlob |
  exportFiles |
  externalAttrNames |
  externalAttributes |
  frameNames |
  freeLinks |
  getKeys |
  id |
  isActive |
  isCommitted |
  isComplete |
  isEdited |
  isReleased |
  lastChanged |
  linkListAttributes |
  mimeType |
  nextEditGroup |
  nextSignGroup |
  objectId |
  reasonsForIncompleteState |
  relatedLinks |
  setKeys |
  signatureAttrNames |
  signatureAttributes |
  sortKey1 |
  sortKey2 |
  sortKey3 |
  sortKeyLength1 |
  sortKeyLength2 |
  sortKeyLength3 |
  sortOrder |
  sortType1 |
  sortType2 |
  sortType3 |
  subLinks |
  textLinks |
  thumbnail |
  title |
  validFrom |
  validSortKeys |
  validSortOrders |
  validSortTypes |
  validUntil |
  workflowComment |
  xmlBlob
">
<!ENTITY % cm.content-load "
 (blob |
  contentType |
  filter)*
">
<!ENTITY % cm.content-resolveRefs "EMPTY">
<!ENTITY % cm.content-set "
 (contentType |
  sortKey1 |
  sortKey2 |
  sortKey3 |
  sortKeyLength1 |
  sortKeyLength2 |
  sortKeyLength3 |
  sortOrder |
  sortType1 |
  sortType2 |
  sortType3 |
  title |
  validFrom |
  validUntil)*
">
<!ENTITY % cm.content-where "
 (id |
 (objectId , state))
">
<!ENTITY % cm.group-addUsers "
 (listitem+)
">
<!ENTITY % cm.group-create "
 (globalPermissions |
  name |
  owner |
  realName)*
">
<!ENTITY % cm.group-delete "EMPTY">
<!ENTITY % cm.group-get "
 displayTitle |
  getKeys |
  globalPermissions |
  hasGlobalPermission |
  users |
  name |
  owner |
  realName |
  setKeys
">
<!ENTITY % cm.group-grantGlobalPermissions "
 (listitem+)
">
<!ENTITY % cm.group-removeUsers "
 (listitem+)
">
<!ENTITY % cm.group-revokeGlobalPermissions "
 (listitem+)
">
<!ENTITY % cm.group-set "
 (globalPermissions |
  owner |
  realName |
  users)*
">
<!ENTITY % cm.group-where "
 (name |
  groupText)?
">
<!ENTITY % cm.incrExport-get "
 (getKeys |
  mode |
  updateRecords |
  updateRecordCount)*
">
<!ENTITY % cm.incrExport-getUpdateData "
 (updateData?)
">
<!ENTITY % cm.incrExport-removeUpdateRecords "
 (updateRecordId+ |
  all)
">
<!ENTITY % cm.incrExport-reset "EMPTY">
<!ENTITY % cm.job-cancel "EMPTY">
<!ENTITY % cm.job-create "
 (name,
  comment?,
  execLogin?,
  execPerm?,
  schedule?,
  script?,
  title?)
">
<!ENTITY % cm.job-delete "EMPTY">
<!ENTITY % cm.job-exec "EMPTY">
<!ENTITY % cm.job-get "
 (category |
  comment |
  displayTitle |
  execLogin |
  execPerm |
  getKeys |
  id |
  isActive |
  lastExecEnd |
  lastExecResult |
  lastExecStart |
  lastLogEntry |
  lastOutput |
  log |
  logEntries |
  name |
  nextExecStart |
  queuePos |
  schedule |
  script |
  setKeys |
  title)*
">
<!ENTITY % cm.job-getLogEntry "%cm.logEntry;">
<!ATTLIST job-getLogEntry
  id CDATA #REQUIRED
>
<!ENTITY % cm.job-getOutput "(%cm.atom;)">
<!ENTITY % cm.job-listQueue "(%cm.listitem;)*">
<!ATTLIST job-listQueue
  category CDATA #IMPLIED
>

<!ENTITY % cm.job-set "
 (comment |
  execLogin |
  execPerm |
  isActive |
  schedule |
  script |
  title)*
">
<!ENTITY % cm.job-where "
 (category |
  comment |
  execLogin |
  id |
  isActive |
  isQueued |
  name |
  title)*
">
<!ENTITY % cm.licenseManager-license "(%cm.atom;)">
<!ENTITY % cm.licenseManager-licenseExpirationDate "(%cm.atom;)">
<!ENTITY % cm.licenseManager-licenseType "(%cm.atom;)">
<!ENTITY % cm.licenseManager-loginCount "(%cm.atom;)">
<!ENTITY % cm.licenseManager-logins "(listitem*)">
<!ENTITY % cm.licenseManager-logout "EMPTY">
<!ENTITY % cm.licenseManager-maxConcurrentUsers "(%cm.atom;)">
<!ENTITY % cm.link-create "
 (attributeName |
  destinationUrl |
  sourceContent)*
">
<!ENTITY % cm.link-delete "EMPTY">
<!ENTITY % cm.link-get "
 (attributeName |
  canHaveAnchor |
  canHaveTarget |
  destination |
  destinationUrl |
  displayTitle |
  expectedPath |
  getKeys |
  id |
  isComplete |
  isExternalLink |
  isFreeLink |
  isIncludeLink |
  isInlineReferenceLink |
  isLinkFromCommittedContent |
  isLinkFromEditedContent |
  isLinkFromReleasedContent |
  isRelatedLink |
  isWritable |
  setKeys |
  source |
  sourceContent |
  sourceTagAttribute |
  sourceTagName |
  target |
  title)*
">
<!ENTITY % cm.link-set "
 (destinationUrl | attributeName |
  target |
  title)*
">
<!ENTITY % cm.link-where "
 (id?)
">
<!ENTITY % cm.logEntry-delete "(deleteLogEntriesCount?)">
<!ENTITY % cm.logEntry-get "
 (logTime |
  logText |
  logType |
  objectId |
  receiver |
  userLogin)*
">
<!ENTITY % cm.logEntry-where "
 (fromDate?,
  logText?,
  logTypes?,
  objectId?,
  receiver?,
  untilDate?,
  userLogin?)
">
<!ENTITY % cm.obj-commit "
 (comment)
">
<!ENTITY % cm.obj-contentTypesForObjType "(listitem*)">
<!ENTITY % cm.obj-copy "
 ((parent | name)+,
  recursive?)
">
<!ENTITY % cm.obj-create "
 (blob |
  contentType |
  file |
  filter |
  name |
  objClass |
  suppressExport |
  xmlBlob)*
">
<!ENTITY % cm.obj-deactivate "EMPTY">
<!ENTITY % cm.obj-delete "EMPTY">
<!ENTITY % cm.obj-edit "
 (comment,
  contentId?)
">
<!ENTITY % cm.obj-exportSubtree "
 (absoluteFsPrefix |
 absoluteUrlPrefix |
 exportCharset |
 filePrefix |
 templateName |
 purgeCollections)*
">
<!ENTITY % cm.obj-forward "
 (comment)
">
<!ENTITY % cm.obj-generatePreview "EMPTY">
<!ENTITY % cm.obj-get "
  archivedContents |
  children |
  committedContentId |
  contentIds |
  contents |
  editedContentId |
  editedContent |
  exportMimeType |
  getKeys |
  hasChildren |
  hasMirrors |
  hasSuperLinks |
  hierarchy |
  id |
  isCommitted |
  isEdited |
  isExportable |
  isMirror |
  isReleased |
  isRoot |
  isGoodDestination |
  isGoodParent |
  name |
  next |
  objClass |
  objType |
  objectsToRoot |
  parent |
  path |
  permission |
  permissionGrantedTo |
  prefixPath |
  previous |
  releasedContentId |
  releasedContent |
  releasedVersions |
  rootPermissionFor |
  setKeys |
  sortValue |
  superLinks |
  superObjects |
  suppressExport |
  toclist |
  validControlActionKeys |
  validCreateObjClasses |
  validObjClasses |
  validPermissions |
  version |
  visibleExportTemplates |
  visibleName |
  visiblePath |
  workflowName
">
<!ENTITY % cm.obj-give "(comment, (groupName | userLogin))">
<!ENTITY % cm.obj-mirror "
 (parent |
  name)*
">
<!ENTITY % cm.obj-permissionGrantTo "
 (group+)
">
<!ENTITY % cm.obj-permissionRevokeFrom "
 (group+)
">
<!ENTITY % cm.obj-reject "
 (comment)
">
<!ENTITY % cm.obj-release "
 (comment)
">
<!ENTITY % cm.obj-removeActiveContents "EMPTY">
<!ENTITY % cm.obj-removeArchivedContents "EMPTY">
<!ENTITY % cm.obj-revert "
 (comment)
">
<!ENTITY % cm.obj-search "
 (query |
  minRelevance |
  maxDocs |
  offsetStart |
  offsetLength |
  parser |
  collections)*
">
<!ENTITY % cm.obj-set "
 (suppressExport |
  name |
  objClass |
  parent |
  permission |
  workflowName)*
">
<!ENTITY % cm.obj-sign "
 (comment)
">
<!ENTITY % cm.obj-take "
 (comment)
">
<!ENTITY % cm.obj-types "(listitem)*">
<!ENTITY % cm.obj-unrelease "
 (comment)
">
<!ENTITY % cm.obj-where "
 (id |
  ids |
  path |
  parent |
  condition)*
">
<!ENTITY % cm.objClass-create "
 (attributes |
  bodyTemplateName |
  completionCheck |
  createPermission |
  externalEditExtension |
  externalEditMimeType |
  isEnabled |
  mandatoryAttributes |
  name |
  objType |
  presetAttributes |
  presetFromParentAttributes |
  recordSetCallback |
  title |
  validContentTypes |
  validSubObjClassCheck |
  validSubObjClasses |
  workflowModification)*
">
<!ENTITY % cm.objClass-delete "EMPTY">
<!ENTITY % cm.objClass-get "
 attributeGroups |
  attributes |
  availableBlobEditors |
  bodyTemplateName |
  completionCheck |
  createPermission |
  customBlobEditorUrl |
  defaultAttributeGroup |
  displayTitle |
  emptyAttributeGroups |
  externalEditExtension |
  externalEditMimeType |
  getKeys |
  goodAttributeGroupAttributes |
  goodAttributes |
  goodMandatoryAttributes |
  goodPresetAttributes |
  goodPresetFromParentAttributes |
  isEnabled |
  localizedTitle |
  mandatoryAttributes |
  name |
  objType |
  presetAttributes |
  presetFromParentAttributes |
  recordSetCallback |
  setKeys |
  title |
  validContentTypes |
  validSubObjClassCheck |
  validSubObjClasses |
  workflowModification |
  xmldtd
">
<!ENTITY % cm.objClass-goodAvailableBlobEditorsForObjType "(listitem*)">
<!ENTITY % cm.objClass-set "
 (attributes |
  availableBlobEditors |
  bodyTemplateName |
  completionCheck |
  createPermission |
  customBlobEditorUrl |
  externalEditExtension |
  externalEditMimeType |
  isEnabled |
  mandatoryAttributes |
  presetAttributes |
  presetFromParentAttributes |
  recordSetCallback |
  title |
  validContentTypes |
  validSubObjClassCheck |
  validSubObjClasses |
  workflowModification)*
">
<!ENTITY % cm.objClass-validAttributes "(listitem)*">
<!ENTITY % cm.objClass-where "
 (name |
 (nameLike?,
  isEnabled?,
  objType?))?
">
<!ENTITY % cm.systemConfig-getAttributes "(key, attributeNames?)">
<!ENTITY % cm.systemConfig-getCounts "(listitem+)">
<!ENTITY % cm.systemConfig-getElements "(listitem+)">
<!ENTITY % cm.systemConfig-getKeys "(listitem+)">
<!ENTITY % cm.systemConfig-getTexts "(listitem+)">
<!ENTITY % cm.systemConfig-installedLanguages "(listitem+)">
<!ENTITY % cm.systemConfig-validTimeZones "(listitem+)">
<!ENTITY % cm.systemConfig-validInputCharsets "(listitem+)">
<!ENTITY % cm.task-delete "EMPTY">
<!ENTITY % cm.task-get "
 (comment |
  displayTitle |
  getKeys |
  groupName |
  objectId |
  taskType |
  timeStamp |
  title |
  userLogin)*
">
<!ENTITY % cm.task-where "
 (id |
 (objectId,
  userLogin?,
  groupNames?,
  taskText?,
  taskType?))?
">
<!ENTITY % cm.user-addToGroups "
 (listitem+)
">
<!ENTITY % cm.user-create "
 (defaultGroup |
  encryptedPassword |
  email |
  globalPermissions |
  login |
  groups |
  owner |
  password |
  realName |
  userLocked)*
">
<!ENTITY % cm.user-delete "EMPTY">
<!ENTITY % cm.user-get "
 defaultGroup |
  displayTitle |
  encryptedPassword |
  email |
  externalUserAttrNames |
  getKeys |
  globalPermissions |
  groups |
  hasGlobalPermission |
  isSuperUser |
  isOwnerOf |
  hasPassword |
  login |
  owner |
  realName |
  setKeys |
  userLocked |
  externalAttrNames
">
<!ENTITY % cm.user-grantGlobalPermissions "
 (listitem+)
">
<!ENTITY % cm.user-removeFromGroups "
 (listitem+)
">
<!ENTITY % cm.user-revokeGlobalPermissions "
 (listitem+)
">
<!ENTITY % cm.user-set "
 (defaultGroup |
  encryptedPassword |
  email |
  globalPermissions |
  groups |
  owner |
  password |
  realName |
  userLocked)*
">
<!ENTITY % cm.user-where "
 (login |
  userText)
">
<!ENTITY % cm.user-writeUserFile "EMPTY">
<!ENTITY % cm.userAttribute-addEnumValues "
 (listitem+)
">
<!ENTITY % cm.userAttribute-create "
 (name |
  type)*
">
<!ENTITY % cm.userAttribute-delete "EMPTY">
<!ENTITY % cm.userAttribute-get "
 (displayTitle |
  getKeys |
  name |
  setKeys	 |
  type |
  values)*
">
<!ENTITY % cm.userAttribute-removeEnumValues "
 (listitem+)
">
<!ENTITY % cm.userAttribute-set "
 (type |
  values)*
">
<!ENTITY % cm.userAttribute-types "(listitem)*">
<!ENTITY % cm.userAttribute-where "
 (name |
 (nameLike?,
  type?))?
">
<!ENTITY % cm.userConfig-getAll "(%cm.atom;)">
<!ENTITY % cm.userConfig-getAttributes "(key, attributeNames?)">
<!ENTITY % cm.userConfig-getCounts "(listitem+)">
<!ENTITY % cm.userConfig-getElements "(listitem+)">
<!ENTITY % cm.userConfig-getKeys "(listitem+)">
<!ENTITY % cm.userConfig-getTexts "(listitem+)">
<!ENTITY % cm.userConfig-removeAttributes "(key, attributeNames?)">
<!ENTITY % cm.userConfig-removeKeys "(listitem*)">
<!ENTITY % cm.userConfig-setAttributes "(key, attributes?)">
<!ENTITY % cm.userConfig-setElements "(dictitem+)">
<!ENTITY % cm.userConfig-setTexts "(dictitem+)">
<!ENTITY % cm.workflow-create "
 (name,
  editGroups?,
  signatureDefs?,
  allowsMultipleSignatures?,
  isEnabled?,
  title?)
">
<!ENTITY % cm.workflow-delete "EMPTY">
<!ENTITY % cm.workflow-get "
 name |
  displayTitle |
  editGroups |
  signatureDefs |
  allowsMultipleSignatures |
  getKeys |
  isEnabled |
  setKeys |
  title
">
<!ENTITY % cm.workflow-set "
 (editGroups |
  signatureDefs |
  allowsMultipleSignatures |
  getKeys |
  isEnabled |
  setKeys |
  title)*
">
<!ENTITY % cm.workflow-where "
 (name |
  nameLike)*
">

<!ELEMENT app-get %cm.app-get;>
<!ELEMENT app-execute %cm.app-execute;>
<!ELEMENT attribute-addEnumValues %cm.attribute-addEnumValues;>
<!ELEMENT attribute-create %cm.attribute-create;>
<!ELEMENT attribute-delete %cm.attribute-delete;>
<!ELEMENT attribute-get (%cm.attribute-get;)*>
<!ELEMENT attribute-description (%cm.atom;)>
<!ELEMENT attribute-getValidEditFieldKeys %cm.attribute-getValidEditFieldKeys;>
<!ATTLIST attribute-getValidEditFieldKeys
	type CDATA #REQUIRED
>
<!ELEMENT attribute-removeEnumValues %cm.attribute-removeEnumValues;>
<!ELEMENT attribute-set %cm.attribute-set;>
<!ELEMENT attribute-types %cm.attribute-types;>
<!ELEMENT attribute-where %cm.attribute-where;>
<!ATTLIST attribute-where
    maxResults CDATA #IMPLIED
>
<!ELEMENT attributeGroup-addAttributes %cm.attributeGroup-addAttributes;>
<!ELEMENT attributeGroup-create %cm.attributeGroup-create;>
<!ELEMENT attributeGroup-delete %cm.attributeGroup-delete;>
<!ELEMENT attributeGroup-get (%cm.attributeGroup-get;)*>
<!ELEMENT attributeGroup-description (%cm.atom;)>
<!ELEMENT attributeGroup-moveAttribute %cm.attributeGroup-moveAttribute;>
<!ELEMENT attributeGroup-moveToIndex %cm.attributeGroup-moveToIndex;>
<!ELEMENT attributeGroup-removeAttributes %cm.attributeGroup-removeAttributes;>
<!ELEMENT attributeGroup-set %cm.attributeGroup-set;>
<!ELEMENT attributeGroup-where %cm.attributeGroup-where;>
<!ELEMENT channel-create %cm.channel-create;>
<!ELEMENT channel-delete %cm.channel-delete;>
<!ELEMENT channel-description (%cm.atom;)>
<!ELEMENT channel-get %cm.channel-get;>
<!ELEMENT channel-set %cm.channel-set;>
<!ELEMENT channel-where %cm.channel-where;>
<!ATTLIST channel-where
    maxResults CDATA #IMPLIED
>
<!ELEMENT content-addLinkTo %cm.content-addLinkTo;>
<!ELEMENT content-delete %cm.content-delete;>
<!ELEMENT content-get (%cm.content-get;)+>
<!ELEMENT content-description (%cm.atom;)>
<!ELEMENT content-load %cm.content-load;>
<!ELEMENT content-resolveRefs %cm.content-resolveRefs;>
<!ELEMENT content-set %cm.content-set;>
<!ELEMENT content-where %cm.content-where;>
<!ELEMENT contentService-editedOverview (%cm.atom;)>
<!ATTLIST contentService-editedOverview
    encoding (plain | base64 | stream) #IMPLIED
>
<!ELEMENT contentService-releasedOverview (%cm.atom;)>
<!ATTLIST contentService-releasedOverview
    encoding (plain | base64 | stream) #IMPLIED
>
<!ELEMENT customCommand-execute (command, arguments?)>
<!ELEMENT content-debugExport ANY>
<!ATTLIST content-debugExport 
  quoteHtml (true | false) "false"
  htmlPrefix CDATA #IMPLIED
  htmlSuffix CDATA #IMPLIED
  infoPrefix CDATA #IMPLIED
  infoSuffix CDATA #IMPLIED
  errorPrefix CDATA #IMPLIED
  errorSuffix CDATA #IMPLIED
  detailed (true | false) "false"
  preferEditedTemplates (true | false) #IMPLIED
  allowEditedContents (true | false) #IMPLIED 
  templateName CDATA #IMPLIED
>
<!ELEMENT group-addUsers %cm.group-addUsers;>
<!ELEMENT group-create %cm.group-create;>
<!ELEMENT group-delete %cm.group-delete;>
<!ELEMENT group-get (%cm.group-get;)>
<!ELEMENT group-description (%cm.atom;)>
<!ELEMENT group-grantGlobalPermissions %cm.group-grantGlobalPermissions;>
<!ELEMENT group-removeUsers %cm.group-removeUsers;>
<!ELEMENT group-revokeGlobalPermissions %cm.group-revokeGlobalPermissions;>
<!ELEMENT group-set %cm.group-set;>
<!ELEMENT group-where %cm.group-where;>
<!ATTLIST group-where
    maxResults CDATA #IMPLIED
>
<!ELEMENT groupProxy-get (%cm.group-get;)>
<!ELEMENT groupProxy-where %cm.group-where;>
<!ELEMENT incrExport-get %cm.incrExport-get;>
<!ELEMENT incrExport-getUpdateData %cm.incrExport-getUpdateData;>
<!ATTLIST incrExport-getUpdateData
	updateRecordId CDATA #REQUIRED
>
<!ELEMENT incrExport-removeUpdateRecords %cm.incrExport-removeUpdateRecords;>
<!ELEMENT incrExport-reset %cm.incrExport-reset;>
<!ELEMENT job-cancel %cm.job-cancel;>
<!ELEMENT job-create %cm.job-create;>
<!ELEMENT job-delete %cm.job-delete;>
<!ELEMENT job-exec %cm.job-exec;>
<!ELEMENT job-get %cm.job-get;>
<!ELEMENT job-getLogEntry %cm.job-getLogEntry;>
<!ELEMENT job-getOutput %cm.job-getOutput;>
<!ELEMENT job-description (%cm.atom;)>
<!ELEMENT job-listQueue %cm.job-listQueue;>
<!ELEMENT job-set %cm.job-set;>
<!ELEMENT licenseManager-license %cm.licenseManager-license;>
<!ELEMENT licenseManager-licenseExpirationDate %cm.licenseManager-licenseExpirationDate;>
<!ELEMENT licenseManager-licenseType %cm.licenseManager-licenseType;>
<!ELEMENT licenseManager-loginCount %cm.licenseManager-loginCount;>
<!ELEMENT licenseManager-logins %cm.licenseManager-logins;>
<!ELEMENT licenseManager-logout %cm.licenseManager-logout;>
<!ATTLIST licenseManager-logout
	login CDATA #IMPLIED
>
<!ELEMENT licenseManager-maxConcurrentUsers %cm.licenseManager-maxConcurrentUsers;>
<!ELEMENT job-where %cm.job-where;>
<!ATTLIST job-where
    maxResults CDATA #IMPLIED
>
<!ELEMENT link-create %cm.link-create;>
<!ELEMENT link-delete %cm.link-delete;>
<!ELEMENT link-get %cm.link-get;>
<!ELEMENT link-description (%cm.atom;)>
<!ELEMENT link-set %cm.link-set;>
<!ELEMENT link-where %cm.link-where;>
<!ELEMENT logEntry-delete %cm.logEntry-delete;>
<!ELEMENT logEntry-get %cm.logEntry-get;>
<!ELEMENT logEntry-where %cm.logEntry-where;>
<!ELEMENT obj-addComment (%cm.atom;)>
<!ELEMENT obj-commit %cm.obj-commit;>
<!ELEMENT obj-contentTypesForObjType %cm.obj-contentTypesForObjType;>
<!ATTLIST obj-contentTypesForObjType
	objType CDATA #IMPLIED
>
<!ELEMENT obj-copy %cm.obj-copy;>
<!ELEMENT obj-create %cm.obj-create;>
<!ELEMENT obj-delete %cm.obj-delete;>
<!ELEMENT obj-edit %cm.obj-edit;>
<!ELEMENT obj-exportSubtree %cm.obj-exportSubtree;>
<!ELEMENT obj-forward %cm.obj-forward;>
<!ELEMENT obj-generatePreview %cm.obj-generatePreview;>
<!ATTLIST obj-generatePreview
	fsPrefix CDATA #REQUIRED
	masterTemplate CDATA #REQUIRED
	mode (0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15) #REQUIRED
	path CDATA #REQUIRED
	urlPrefix CDATA #REQUIRED
    editor CDATA #REQUIRED>
<!ELEMENT obj-get (%cm.obj-get;)*>
<!ELEMENT obj-description (%cm.atom;)>
<!ELEMENT obj-give %cm.obj-give;>
<!ELEMENT obj-mirror %cm.obj-mirror;>
<!ELEMENT obj-permissionGrantTo %cm.obj-permissionGrantTo;>
<!ATTLIST obj-permissionGrantTo
	permission (permissionCreateChildren | permissionWrite | permissionRead | permissionRoot) #REQUIRED
>
<!ELEMENT obj-permissionRevokeFrom %cm.obj-permissionRevokeFrom;>
<!ATTLIST obj-permissionRevokeFrom
	permission (permissionCreateChildren | permissionWrite | permissionRead | permissionRoot) #REQUIRED
>
<!ELEMENT obj-reject %cm.obj-reject;>
<!ELEMENT obj-release %cm.obj-release;>
<!ELEMENT obj-removeActiveContents %cm.obj-removeActiveContents;>
<!ELEMENT obj-removeArchivedContents %cm.obj-removeArchivedContents;>
<!ELEMENT obj-revert %cm.obj-revert;>
<!ELEMENT obj-search %cm.obj-search;>
<!ELEMENT obj-set %cm.obj-set;>
<!ELEMENT obj-sign %cm.obj-sign;>
<!ELEMENT obj-take %cm.obj-take;>
<!ELEMENT obj-types %cm.obj-types;>
<!ELEMENT obj-unrelease %cm.obj-unrelease;>
<!ELEMENT obj-where %cm.obj-where;>
<!ATTLIST obj-where
    maxResults CDATA #IMPLIED
>


<!ELEMENT objClass-create %cm.objClass-create;>
<!ELEMENT objClass-delete %cm.objClass-delete;>
<!ELEMENT objClass-get (%cm.objClass-get;)*>
<!ELEMENT objClass-description (%cm.atom;)>
<!ELEMENT objClass-goodAvailableBlobEditorsForObjType %cm.objClass-goodAvailableBlobEditorsForObjType;>
<!ATTLIST objClass-goodAvailableBlobEditorsForObjType
	objType CDATA #REQUIRED
>
<!ELEMENT objClass-set %cm.objClass-set;>
<!ELEMENT objClass-validAttributes %cm.objClass-validAttributes;>
<!ELEMENT objClass-where %cm.objClass-where;>
<!ATTLIST objClass-where
    maxResults CDATA #IMPLIED
>
<!ELEMENT systemConfig-formatDate (%cm.atom;)>
<!ELEMENT systemConfig-formatDateTime (%cm.atom;)>
<!ELEMENT systemConfig-getAttributes %cm.systemConfig-getAttributes;>
<!ELEMENT systemConfig-getCounts %cm.systemConfig-getCounts;>
<!ELEMENT systemConfig-getElements %cm.systemConfig-getElements;>
<!ELEMENT systemConfig-getKeys %cm.systemConfig-getKeys;>
<!ELEMENT systemConfig-getTexts %cm.systemConfig-getTexts;>
<!ELEMENT systemConfig-parseInputDate %cm.date;>
<!ELEMENT systemConfig-installedLanguages %cm.systemConfig-installedLanguages;>
<!ELEMENT systemConfig-validTimeZones %cm.systemConfig-validTimeZones;>
<!ELEMENT systemConfig-validInputCharsets %cm.systemConfig-validInputCharsets;>
<!ELEMENT task-delete %cm.task-delete;>
<!ELEMENT task-get %cm.task-get;>
<!ELEMENT task-description (%cm.atom;)>
<!ELEMENT task-where %cm.task-where;>
<!ATTLIST task-where
    maxResults CDATA #IMPLIED
>
<!ELEMENT user-addToGroups %cm.user-addToGroups;>
<!ELEMENT user-create %cm.user-create;>
<!ELEMENT user-delete %cm.user-delete;>
<!ELEMENT user-get (%cm.user-get;)*>
<!ELEMENT user-description (%cm.atom;)>
<!ELEMENT user-grantGlobalPermissions %cm.user-grantGlobalPermissions;>
<!ELEMENT user-removeFromGroups %cm.user-removeFromGroups;>
<!ELEMENT user-revokeGlobalPermissions %cm.user-revokeGlobalPermissions;>
<!ELEMENT user-set %cm.user-set;>
<!ELEMENT user-where %cm.user-where;>
<!ATTLIST user-where
    maxResults CDATA #IMPLIED
>
<!ELEMENT user-writeUserFile %cm.user-writeUserFile;>
<!ELEMENT userAttribute-addEnumValues %cm.userAttribute-addEnumValues;>
<!ELEMENT userAttribute-create %cm.userAttribute-create;>
<!ELEMENT userAttribute-delete %cm.userAttribute-delete;>
<!ELEMENT userAttribute-get %cm.userAttribute-get;>
<!ELEMENT userAttribute-description (%cm.atom;)>
<!ELEMENT userAttribute-removeEnumValues %cm.userAttribute-removeEnumValues;>
<!ELEMENT userAttribute-set %cm.userAttribute-set;>
<!ELEMENT userAttribute-where %cm.userAttribute-where;>
<!ATTLIST userAttribute-where
    maxResults CDATA #IMPLIED
>
<!ELEMENT userAttribute-types %cm.userAttribute-types;>
<!ELEMENT userConfig-getAll %cm.userConfig-getAll;>
<!ATTLIST userConfig-getAll
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-formatDate (%cm.atom;)>
<!ATTLIST userConfig-formatDate
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-formatDateTime (%cm.atom;)>
<!ATTLIST userConfig-formatDateTime
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-getAttributes %cm.userConfig-getAttributes;>
<!ATTLIST userConfig-getAttributes
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-getCounts %cm.userConfig-getCounts;>
<!ATTLIST userConfig-getCounts
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-getElements %cm.userConfig-getElements;>
<!ATTLIST userConfig-getElements
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-getKeys %cm.userConfig-getKeys;>
<!ATTLIST userConfig-getKeys
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-getTexts %cm.userConfig-getTexts;>
<!ATTLIST userConfig-getTexts
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-initFromFile (%cm.atom;)>
<!ATTLIST userConfig-initFromFile
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-parseInputDate %cm.date;>
<!ATTLIST userConfig-parseInputDate
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-removeAttributes %cm.userConfig-removeAttributes;>
<!ATTLIST userConfig-removeAttributes
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-removeKeys %cm.userConfig-removeKeys;>
<!ATTLIST userConfig-removeKeys
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-setAttributes %cm.userConfig-setAttributes;>
<!ATTLIST userConfig-setAttributes
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-setElements %cm.userConfig-setElements;>
<!ATTLIST userConfig-setElements
	login CDATA #IMPLIED
>
<!ELEMENT userConfig-setTexts %cm.userConfig-setTexts;>
<!ATTLIST userConfig-setTexts
	login CDATA #IMPLIED
>
<!ELEMENT userProxy-get (%cm.user-get;)*>
<!ELEMENT userProxy-where %cm.user-where;>
<!ELEMENT workflow-create %cm.workflow-create;>
<!ELEMENT workflow-delete %cm.workflow-delete;>
<!ELEMENT workflow-get (%cm.workflow-get;)*>
<!ELEMENT workflow-description (%cm.atom;)>
<!ELEMENT workflow-set %cm.workflow-set;>
<!ELEMENT workflow-where %cm.workflow-where;>
<!ATTLIST workflow-where
    maxResults CDATA #IMPLIED
>

<!ELEMENT attribute (%cm.atom; | %cm.attribute-get;)*>
<!ELEMENT attributeGroup (attribute | %cm.attributeGroup-get;)*>
<!ELEMENT content (%cm.content-get;)*>
<!ELEMENT group (%cm.atom; | %cm.group-get;)*>
<!ELEMENT job (%cm.job-get;)>
<!ELEMENT link (%cm.link-get;)>
<!ELEMENT obj (%cm.obj-get;)*>
<!ELEMENT objClass (%cm.atom; | %cm.objClass-get;)*>
<!ELEMENT updateData ANY>
<!ELEMENT user (%cm.atom; | %cm.user-get;)*>
<!ELEMENT userAttribute (%cm.userAttribute-get;)>
<!ELEMENT arguments (%cm.listitem;)*>
<!ELEMENT all (%cm.atom;)>
<!ELEMENT allowsMultipleSignatures (%cm.atom;)>
<!ELEMENT anchors (%cm.listitem;)*>
<!ELEMENT archivedContents ((content)* | (%cm.listitem;)*)>
<!ELEMENT attributeName (%cm.atom; | %cm.attribute-get;)*>
<!ELEMENT attributeNames (%cm.listitem;)*>
<!ELEMENT attributeGroups ((attributeGroup)* | (%cm.listitem;)*)>
<!ELEMENT attributes ((attribute)* | (%cm.listitem;)* | (dictitem)+)>
<!ELEMENT availableBlobEditors (%cm.listitem;)*>
<!ELEMENT blob (%cm.atom;)>
<!ATTLIST blob
    encoding (plain | base64 | stream) #IMPLIED
>
<!ELEMENT blobLength (%cm.atom;)>
<!ELEMENT body (%cm.atom;)>
<!ELEMENT bodyTemplateName (%cm.atom;)>
<!ELEMENT callback (%cm.atom;)>
<!ELEMENT canHaveAnchor (%cm.atom;)>
<!ELEMENT canHaveTarget (%cm.atom;)>
<!ELEMENT category (%cm.atom;)>
<!ELEMENT children ((obj)* | (%cm.listitem;)*)>
<!ELEMENT codeForSourceView (%cm.atom;)>
<!ATTLIST codeForSourceView
	objectPageUrl CDATA #REQUIRED
	linkPageUrl CDATA #REQUIRED
	useJavaScript CDATA #IMPLIED
>
<!ELEMENT collections (%cm.listitem;)>
<!ELEMENT command (%cm.atom;)>
<!ELEMENT comment (%cm.atom;)>
<!ELEMENT committedContentId (%cm.atom; | %cm.content-get;)*>
<!ELEMENT completionCheck (%cm.atom;)>
<!ELEMENT contentId (%cm.atom;)>
<!ELEMENT contentIds ((content)* | (%cm.listitem;)*)>
<!ELEMENT contents ((content)* | (%cm.listitem;)*)>
<!ELEMENT contentType (%cm.atom;)>
<!ELEMENT count (%cm.atom;)>
<!ELEMENT createPermission (%cm.atom;)>
<!ELEMENT customBlobEditorUrl (%cm.atom;)>
<!ELEMENT defaultAttributeGroup (%cm.atom; | attributeGroup)*>
<!ELEMENT defaultGroup (%cm.atom; | group)*>
<!ELEMENT deleteLogEntriesCount (%cm.atom;)>
<!ELEMENT description (%cm.atom;)>
<!ELEMENT destination (%cm.atom; | %cm.obj-get;)*>
<!ELEMENT destinationUrl (%cm.atom;)>
<!ELEMENT displayTitle (%cm.atom;)>
<!ATTLIST displayTitle
	type CDATA #IMPLIED
>
<!ELEMENT displayValueCallback (%cm.atom;)>
<!ELEMENT editField (%cm.atom;)>
<!ATTLIST editField
	parameter (length | maxlength | nilAllowed | objClasses | rows | startPub| type) #REQUIRED
>
<!ELEMENT editFieldSpec (%cm.atom; | %cm.dictitem;)*>
<!ELEMENT editGroups ((group)* | (%cm.listitem;)*)>
<!ELEMENT editedContent (%cm.atom; | %cm.content-get;)*>
<!ELEMENT editedContentId (%cm.atom; | %cm.content-get;)*>
<!ELEMENT editor (%cm.atom; | %cm.user-get;)*>
<!ELEMENT email (%cm.atom;)>
<!ELEMENT emptyAttributeGroups ((%cm.listitem;)* | (attributeGroup)*)>
<!ELEMENT encryptedPassword (%cm.atom;)>
<!ELEMENT execLogin (%cm.atom;)>
<!ELEMENT execPerm (%cm.atom;)>
<!ELEMENT expectedPath (%cm.atom;)>
<!ELEMENT exportBlob (%cm.atom;)>
<!ATTLIST exportBlob
    encoding (plain | base64 | stream) #IMPLIED
>
<!ELEMENT exportFiles (%cm.listitem;)*>
<!ELEMENT exportMimeType (%cm.atom;)>
<!ELEMENT externalAttrNames ((attribute)* | (%cm.listitem;)*)>
<!ELEMENT externalAttributes (%cm.dictitem;)*>
<!ELEMENT externalEditExtension (%cm.atom;)>
<!ELEMENT externalEditMimeType (%cm.atom;)>
<!ELEMENT externalUserAttrNames ((userAttribute)* | (%cm.listitem;)*)>
<!ELEMENT extractToDirectory (%cm.atom;)>
<!ELEMENT filter (%cm.atom;)>
<!ELEMENT file (%cm.atom;)>
<!ELEMENT filePrefix (%cm.atom;)>
<!ELEMENT frameNames (%cm.listitem;)*>
<!ELEMENT freeLinks ((link)* | (%cm.listitem;)*)>
<!ELEMENT fromDate (%cm.atom;)>
<!ELEMENT getKeys (%cm.listitem;)*>
<!ELEMENT globalPermissions (%cm.listitem;)*>
<!ELEMENT goodAttributeGroupAttributes ((%cm.listitem;)* | (attribute)*)>
<!ELEMENT goodAttributes ((%cm.listitem;)* | (attribute)*)>
<!ELEMENT goodMandatoryAttributes ((attribute)* | (%cm.listitem;)*)>
<!ELEMENT goodPresetAttributes ((attribute)* | (%cm.listitem;)*)>
<!ELEMENT goodPresetFromParentAttributes ((attribute)* | (%cm.listitem;)*)>
<!ELEMENT groupName (%cm.atom; | %cm.group-get;)*>
<!ELEMENT groupNames (%cm.listitem;)*>
<!ELEMENT groupText (%cm.atom;)>
<!ELEMENT groups ((group)* | (%cm.listitem;)*)>
<!ELEMENT hasChildren (%cm.atom;)>
<!ELEMENT hasGlobalPermission (%cm.atom;)>
<!ATTLIST hasGlobalPermission
	permission CDATA #REQUIRED
>
<!ELEMENT hasPassword (%cm.atom;)>
<!ATTLIST hasPassword
	password CDATA #REQUIRED
>
<!ELEMENT hasSuperLinks (%cm.atom;)>
<!ELEMENT helpText (%cm.atom;)>
<!ATTLIST helpText
	lang (en | de | it | fr | es) #IMPLIED
>
<!ELEMENT hierarchy (%cm.listitem;)*>
<!ATTLIST hierarchy
	maxDepth CDATA #IMPLIED
	maxLines CDATA #IMPLIED
	document (0 | 1) #IMPLIED
	generic (0 | 1) #IMPLIED
	image (0 | 1) #IMPLIED
	publication (0 | 1) #IMPLIED
	template (0 | 1) #IMPLIED
>
<!ELEMENT condition (%cm.atom; | %cm.listitem;)*>
<!ATTLIST condition
    subject CDATA #REQUIRED
    verb CDATA #REQUIRED
>
<!ELEMENT id (%cm.atom;)>
<!ELEMENT ids (%cm.atom; | %cm.listitem;)*>
<!ELEMENT index (%cm.atom;)>
<!ELEMENT inputType (%cm.atom;)>
<!ELEMENT isActive (%cm.atom;)>
<!ELEMENT isCommitted (%cm.atom;)>
<!ELEMENT isComplete (%cm.atom;)>
<!ELEMENT isDefaultGroup (%cm.atom;)>
<!ELEMENT isEdited (%cm.atom;)>
<!ELEMENT isEmpty (%cm.atom;)>
<!ELEMENT isEnabled (%cm.atom;)>
<!ELEMENT isExternalLink (%cm.atom;)>
<!ELEMENT isFreeLink (%cm.atom;)>
<!ELEMENT isGoodDestination (%cm.atom;)>
<!ATTLIST isGoodDestination
	linkId CDATA #REQUIRED
>
<!ELEMENT isGoodParent (%cm.atom;)>
<!ATTLIST isGoodParent
	objectId CDATA #REQUIRED
>
<!ELEMENT isIncludeLink (%cm.atom;)>
<!ELEMENT isInlineReferenceLink (%cm.atom;)>
<!ELEMENT isLinkFromCommittedContent (%cm.atom;)>
<!ELEMENT isLinkFromEditedContent (%cm.atom;)>
<!ELEMENT isLinkFromReleasedContent (%cm.atom;)>
<!ELEMENT isoDateTime (%cm.atom;)>
<!ELEMENT isOwnerOf (%cm.atom;)>
<!ATTLIST isOwnerOf
	login CDATA #REQUIRED
>
<!ELEMENT isQueued (%cm.atom;)>
<!ELEMENT isRelatedLink (%cm.atom;)>
<!ELEMENT isReleased (%cm.atom;)>
<!ELEMENT isRoot (%cm.atom;)>
<!ELEMENT isSearchableInCM (%cm.atom;)>
<!ELEMENT isSearchableInTE (%cm.atom;)>
<!ELEMENT isSuperUser (%cm.atom;)>
<!ELEMENT isWritable (%cm.atom;)>
<!ELEMENT lastChanged %cm.date;>
<!ATTLIST lastChanged
	type CDATA #IMPLIED
>
<!ELEMENT lastExecEnd %cm.date;>
<!ATTLIST lastExecEnd
	type CDATA #IMPLIED
>
<!ELEMENT lastExecResult (%cm.atom;)>
<!ELEMENT lastExecStart %cm.date;>
<!ATTLIST lastExecStart
	type CDATA #IMPLIED
>
<!ELEMENT lastLogEntry %cm.logEntry;>
<!ELEMENT lastOutput (%cm.atom;)>
<!ELEMENT linkListAttributes ((attribute)* | (%cm.listitem;)*)>
<!ELEMENT localizedTitle (%cm.atom;)>
<!ELEMENT localizedHelpText (%cm.atom;)>
<!ELEMENT log (%cm.listitem;)*>
<!ELEMENT logEntries (%cm.listitem;)*>
<!ELEMENT logEntryId (%cm.atom;)>
<!ELEMENT execResult (%cm.atom;)>
<!ELEMENT execStart %cm.date;>
<!ATTLIST execStart
    type CDATA #IMPLIED
>
<!ELEMENT execEnd %cm.date;>
<!ATTLIST execEnd
    type CDATA #IMPLIED
>
<!ELEMENT logText (%cm.atom;)>
<!ELEMENT logTime %cm.date;>
<!ELEMENT logType (%cm.atom;)>
<!ELEMENT logTypes (%cm.listitem;)*>
<!ELEMENT login (%cm.atom;)>
<!ELEMENT maxDocs (%cm.atom;)>
<!ELEMENT maxSize (%cm.atom;)*>
<!ELEMENT mandatoryAttributes ((attribute)* | (%cm.listitem;)*)>
<!ELEMENT method (%cm.atom;)>
<!ELEMENT mimeType (%cm.atom;)>
<!ELEMENT minRelevance (%cm.atom;)>
<!ELEMENT minSize (%cm.atom;)*>
<!ELEMENT mode (%cm.atom;)>
<!ELEMENT name (%cm.atom;)>
<!ATTLIST name
	type CDATA #IMPLIED
>
<!ELEMENT nameLike (%cm.atom;)>
<!ELEMENT namevalue (name, value)>
<!ELEMENT next (%cm.atom; | %cm.obj-get;)*>
<!ELEMENT nextEditGroup (%cm.atom; | %cm.group-get;)*>
<!ELEMENT nextExecStart %cm.date;>
<!ATTLIST nextExecStart
	type CDATA #IMPLIED
>
<!ELEMENT nextSignGroup (%cm.atom; | %cm.group-get;)*>
<!ELEMENT now %cm.date;>
<!ATTLIST now
	type CDATA #IMPLIED
>
<!ELEMENT today %cm.date;>
<!ELEMENT objClasses ((%cm.listitem;)* | (objClass)*)>
<!ELEMENT objType (%cm.atom;)>
<!ELEMENT objectId (%cm.atom; | %cm.obj-get;)*>
<!ELEMENT objectsToRoot ((obj)* | (%cm.listitem;)*)>
<!ELEMENT offsetStart (%cm.atom;)>
<!ELEMENT offsetLength (%cm.atom;)>
<!ELEMENT outputType (%cm.atom;)>
<!ELEMENT owner (%cm.atom; | %cm.user-get;)*>
<!ELEMENT parent (%cm.atom; | %cm.obj-get;)*>
<!ELEMENT parser (%cm.atom;)>
<!ELEMENT password (%cm.atom;)>
<!ELEMENT path (%cm.atom;)>
<!ELEMENT permission ((group)* | (%cm.listitem;)*)>
<!ATTLIST permission
	permission (permissionCreateChildren | permissionWrite | permissionRead | permissionRoot) #REQUIRED
>
<!ELEMENT permissionGrantedTo (%cm.atom;)>
<!ATTLIST permissionGrantedTo
	permission (permissionCreateChildren | permissionWrite | permissionRead | permissionRoot) #REQUIRED
	user CDATA #IMPLIED
	group CDATA #IMPLIED
>
<!ELEMENT prefixPath (%cm.atom;)>
<!ELEMENT presetAttributes (dictitem)*>
<!ELEMENT presetFromParentAttributes ((attribute)* | (%cm.listitem;)*)>
<!ELEMENT previous (%cm.atom; | %cm.obj-get;)*>
<!ELEMENT queuePos (%cm.atom;)>
<!ELEMENT query (%cm.atom;)>
<!ELEMENT realName (%cm.atom;)>
<!ELEMENT reasonsForIncompleteState (%cm.listitem;)*>
<!ELEMENT receiver (%cm.atom;)>
<!ELEMENT recordSetCallback (%cm.atom;)>
<!ELEMENT recursive (%cm.atom;)>
<!ELEMENT relatedLinks ((link)* | (%cm.listitem;)*)>
<!ELEMENT releasedContent (%cm.atom; | %cm.content-get;)*>
<!ELEMENT releasedContentId (%cm.atom; | %cm.content-get;)*>
<!ELEMENT releasedVersions ((content)* | (%cm.listitem;)*)>
<!ELEMENT rootPermissionFor (%cm.atom;)>
<!ATTLIST rootPermissionFor
	user CDATA #IMPLIED
	group CDATA #IMPLIED
>
<!ELEMENT schedule (%cm.listitem;)*>
<!ELEMENT script (%cm.atom;)>
<!ELEMENT setKeys (%cm.listitem;)*>
<!ELEMENT signatureAttrNames ((attribute)* | (%cm.listitem;)*)>
<!ELEMENT signatureAttributes (namevalue)*>
<!ELEMENT signatureDefs (%cm.dictitem;)*>
<!ELEMENT sortKey1 (%cm.atom;)>
<!ELEMENT sortKey2 (%cm.atom;)>
<!ELEMENT sortKey3 (%cm.atom;)>
<!ELEMENT sortKeyLength1 (%cm.atom;)>
<!ELEMENT sortKeyLength2 (%cm.atom;)>
<!ELEMENT sortKeyLength3 (%cm.atom;)>
<!ELEMENT sortOrder (%cm.atom;)>
<!ELEMENT sortType1 (%cm.atom;)>
<!ELEMENT sortType2 (%cm.atom;)>
<!ELEMENT sortType3 (%cm.atom;)>
<!ELEMENT sortValue (%cm.atom;)>
<!ELEMENT source (%cm.atom; | %cm.obj-get;)*>
<!ELEMENT sourceContent (%cm.atom; | %cm.content-get;)*>
<!ELEMENT sourceTagAttribute (%cm.atom;)>
<!ELEMENT sourceTagName (%cm.atom;)>
<!ELEMENT state (%cm.atom;)>
<!ELEMENT subLinks ((link)* | (%cm.listitem;)*)>
<!ELEMENT superLinks ((link)* | (%cm.listitem;))>
<!ELEMENT superObjects ((obj)* | (%cm.listitem;))>
<!ELEMENT suppressExport (%cm.atom;)>
<!ELEMENT systemConfigFormattedTime (%cm.atom;)>
<!ELEMENT target (%cm.atom;)>
<!ELEMENT taskText (%cm.atom;)>
<!ELEMENT taskType (%cm.atom;)>
<!ELEMENT textLinks ((link)* | (%cm.listitem;)*)>
<!ELEMENT templateName (%cm.atom;)>
<!ELEMENT thumbnail (%cm.atom;)>
<!ELEMENT timeStamp (%cm.atom;)>
<!ELEMENT timeZone (%cm.atom;)>
<!ELEMENT title (%cm.atom;)>
<!ATTLIST title
	lang (en | de | it | fr | es) #IMPLIED
	type CDATA #IMPLIED
>
<!ELEMENT toclist ((obj)* | (%cm.listitem;)*)>
<!ELEMENT type (%cm.atom;)>
<!ELEMENT untilDate %cm.date;>
<!ELEMENT updateRecords (%cm.listitem;)*>
<!ELEMENT updateRecordCount (%cm.atom;)>
<!ELEMENT updateRecordId (%cm.atom;)>
<!ELEMENT userConfigFormattedTime (%cm.atom;)>
<!ELEMENT userLocked (%cm.atom;)>
<!ELEMENT userLogin (%cm.atom; | %cm.user-get;)*>
<!ELEMENT userText (%cm.atom;)>
<!ELEMENT users ((user)* | (%cm.listitem;)*)>
<!ELEMENT userProxy ANY>
<!ELEMENT validContentTypes (%cm.listitem;)*>
<!ELEMENT validControlActionKeys (%cm.listitem;)*>
<!ELEMENT validCreateObjClasses ((objClass)* | (%cm.listitem;)*)>
<!ELEMENT validEditFieldKeys (%cm.listitem;)*>
<!ELEMENT validEditFieldTypes (%cm.listitem;)*>
<!ELEMENT validFrom %cm.date;>
<!ATTLIST validFrom
	type CDATA #IMPLIED
>
<!ELEMENT validObjClasses ((objClass)* | (%cm.listitem;)*)>
<!ELEMENT validPermissions (%cm.listitem;)*>
<!ELEMENT validSortKeys (%cm.listitem;)*>
<!ELEMENT validSortOrders (%cm.listitem;)*>
<!ELEMENT validSortTypes (%cm.listitem;)*>
<!ELEMENT validSubObjClassCheck (%cm.atom;)>
<!ELEMENT validSubObjClasses ((objClass)* | (%cm.listitem;)*)>
<!ELEMENT validUntil %cm.date;>
<!ATTLIST validUntil
	type CDATA #IMPLIED
>
<!ELEMENT values (%cm.listitem;)*>
<!ELEMENT version (%cm.atom;)>
<!ELEMENT visibleExportTemplates ((obj)* | (%cm.listitem;)*)>
<!ELEMENT visibleName (%cm.atom;)>
<!ELEMENT visiblePath (%cm.atom;)>
<!ELEMENT wantedTags (%cm.listitem;)*>
<!ELEMENT workflowComment (%cm.atom;)>
<!ELEMENT workflowModification (%cm.atom;)>
<!ELEMENT workflowName (%cm.atom; | %cm.workflow-get;)*>
<!ELEMENT xmlBlob (%cm.atom;)>
<!ELEMENT xmldtd (%cm.atom;)>

<!ELEMENT appName (%cm.atom;)>
<!ELEMENT baseDir (%cm.atom;)>
<!ELEMENT binDir (%cm.atom;)>
<!ELEMENT configDir (%cm.atom;)>
<!ELEMENT dataDir (%cm.atom;)>
<!ELEMENT debugChannels (%cm.atom;)>
<!ELEMENT debugLevel (%cm.atom;)>
<!ELEMENT instanceDir (%cm.atom;)>
<!ELEMENT libDir (%cm.atom;)>
<!ELEMENT logDir (%cm.atom;)>
<!ELEMENT rootConfigPath (%cm.atom;)>
<!ELEMENT scriptDir (%cm.atom;)>
<!ELEMENT shareDir (%cm.atom;)>
<!ELEMENT tmpDir (%cm.atom;)>