<?xml version="1.0"?>
<!DOCTYPE SystemDefinition [
 <!ELEMENT SystemDefinition (systemModel?, build?)>
 <!ATTLIST SystemDefinition
  name CDATA #REQUIRED
  schema CDATA #REQUIRED>
 <!ELEMENT systemModel (layer+)>
 <!ELEMENT layer (logicalset* | module*)*>
 <!ATTLIST layer
  name CDATA #REQUIRED
  levels CDATA #IMPLIED
  span CDATA #IMPLIED>
 <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
 <!ATTLIST logicalset 
  name CDATA #REQUIRED
  levels CDATA #IMPLIED  
  span CDATA #IMPLIED
  level CDATA #IMPLIED>
 <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
 <!ATTLIST logicalsubset name CDATA #REQUIRED>
 <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
 <!ATTLIST module
  name CDATA #REQUIRED
  level CDATA #IMPLIED>
 <!ELEMENT component (unit* | package* | prebuilt*)*>
 <!ATTLIST component name CDATA #REQUIRED>
 <!ELEMENT unit EMPTY>
 <!ATTLIST unit
  unitID ID #REQUIRED
  name CDATA #REQUIRED
  mrp CDATA #REQUIRED
  filter CDATA #IMPLIED
  bldFile CDATA #REQUIRED
  priority CDATA #IMPLIED
  contract CDATA #IMPLIED>
 <!ELEMENT package EMPTY>
 <!ATTLIST package
  name CDATA #REQUIRED
  mrp CDATA #REQUIRED
  filter CDATA #IMPLIED
  contract CDATA #IMPLIED>
 <!ELEMENT prebuilt EMPTY>
 <!ATTLIST prebuilt
  name CDATA #REQUIRED
  version CDATA #REQUIRED
  late (Y|N) #IMPLIED
  filter CDATA #IMPLIED
  contract CDATA #IMPLIED>
 <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
 <!ELEMENT unitList (unitRef+)>
 <!ATTLIST unitList
  name ID #REQUIRED
  description CDATA #REQUIRED>
 <!ELEMENT unitRef EMPTY>
 <!ATTLIST unitRef unit IDREF #REQUIRED>
 <!ELEMENT targetList EMPTY>
 <!ATTLIST targetList
  name ID #REQUIRED
  description CDATA #REQUIRED
  target IDREFS #REQUIRED>
 <!ELEMENT target EMPTY>
 <!ATTLIST target
  name ID #REQUIRED
  abldTarget CDATA #REQUIRED
  description CDATA #REQUIRED>
 <!ELEMENT option EMPTY>
 <!ATTLIST option
  name ID #REQUIRED
  abldOption CDATA #REQUIRED
  description CDATA #REQUIRED
  enable (Y | N | y | n) #REQUIRED>
 <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
 <!ATTLIST configuration
  name ID #REQUIRED
  description CDATA #REQUIRED
  filter CDATA #REQUIRED>
 <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
 <!ELEMENT unitListRef EMPTY>
 <!ATTLIST unitListRef unitList IDREF #REQUIRED>
 <!ELEMENT layerRef EMPTY>
 <!ATTLIST layerRef layerName CDATA #REQUIRED>
 <!ELEMENT buildLayer EMPTY>
 <!ATTLIST buildLayer
  command CDATA #REQUIRED
  targetList IDREFS #IMPLIED
  unitParallel (Y | N | y | n) #REQUIRED
  targetParallel (Y | N | y | n) #IMPLIED>
 <!ELEMENT specialInstructions EMPTY>
 <!ATTLIST specialInstructions
  name CDATA #REQUIRED
  cwd CDATA #REQUIRED
  command CDATA #REQUIRED>
  <!ENTITY layer_real_source_path "sf/os/devicesrv/resourcemgmt" >
]>

<SystemDefinition name="Dvscode" schema="1.4.0">
  <systemModel>
    <layer name="os_layer">
		<module name="DeviceSrv_NCP">
			<unit name="hwresourcesmgr" unitID="sos.hwresourcesmgr" bldFile="&layer_real_source_path;/hwresourcesmgr/group" mrp="&layer_real_source_path;/hwresourcesmgr/group/telephony_hwrm.mrp"/>
			<unit name="powerandmemorynotificationservice" unitID="sos.powerandmemorynotificationservice" bldFile="&layer_real_source_path;/powerandmemorynotificationservice/group" mrp="&layer_real_source_path;/powerandmemorynotificationservice/group/syslibs_pwrcli.mrp"/>
		</module>
    </layer>
	
	<layer name="clean_only_layer">
		<module name="DeviceSrv_NCP">
			<unit name="hwresourcesmgr" unitID="sos.hwresourcesmgr_clean" bldFile="&layer_real_source_path;/hwresourcesmgrconfig" mrp=""/>
		</module>
	</layer>
	
	<layer name="api_test_layer">
		<module name="DeviceSrv_NCP">
			<unit name="hwresourcesmgr" unitID="sos.hwresourcesmgr_test" bldFile="&layer_real_source_path;/hwresourcesmgr/test/group" mrp="&layer_real_source_path;/hwresourcesmgr/group/telephony_hwrm.mrp"/>
			<unit name="powerandmemorynotificationservice" unitID="sos.powerandmemorynotificationservice_test" bldFile="&layer_real_source_path;/powerandmemorynotificationservice/group" mrp="&layer_real_source_path;/powerandmemorynotificationservice/group/syslibs_pwrcli.mrp"/>
		</module>
	</layer>

  </systemModel>
</SystemDefinition>