C.3 Sample ImageSpecification.xml Documents

Novell Linux client Image Specification Documents can be defined in an XML editor or in a standard text editor. XML editors provide the advantage of a graphical user interface. Typically, XML elements are presented as graphical objects and are visually organized in the schema hierarchy. Element attributes are defined as fields within the element objects. After the XML template is defined, the template can be saved as a standard XML document. The graphics in Section 9.2.2, Image Specification Documents were taken in an XML editor. They show XML schema in a graphical format.

Novell Linux client Image Specification Documents can also be defined in a standard text editor. Text-based XML documents are more complicated because the schema hierarchy and element attributes are defined through the document syntax and organization. The following sample documents are presented in text format.

The following are examples of Novell Linux client Image Specification Documents:

C.3.1 ImageSpecification.xml Template

Figure C-1 is a graphical representation of the Image Specification Document template. It demonstrates the organization of Novell Linux client Image Specification Documents.

Figure C-1 ImageSpecification.sml schema structure

ImageSpecification.xml schema structure

The following is a text representation of the Image Specification Document template. It demonstrates the syntax of Novell Linux client Image Specification Documents; however, it is not populated with actual data.

<ImageSpecification xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="I:\ImageSpecification.xsd" SchemaVersion="1" SchemaRevision="1" ImageName="String" ImageType="diskful" ImageVersion="String" AddonSize="String" Type="ext2" Timezone="String" Locale="String" Keytable="String">
	<IncludeSpecificationList>
  		       <IncludeSpecification URI="String"/>
	         </IncludeSpecificationList>
          <RequiredList> 
        <Require URI="String"/>
     </RequiredList>
     	<DriverSpecifications>
		         <DriverIncludeList>
			              <DriverSet Name="String">
		                    <ExplicitPath URI="String"/>
              				      <DriverList>
                        					<Driver Name="String"/>
              			      	</DriverList>
              			</DriverSet>
     		    </DriverIncludeList>
        		 <DriverExcludeList>
              			<Driver Name="String"/>
        	 	</DriverExcludeList>
     	</DriverSpecifications>
	     <ConfigSpecifications>
		         <ConfigIncludeList>
        			      <Config Type="HWD" Name="String"/>
         		</ConfigIncludeList>
		         <ConfigExcludeList>			
              <Config Name="String"/>
   		      </ConfigExcludeList>
   	  </ConfigSpecifications>
	     <RPMSpecifications>		
         <RPMIncludeList>
              			<RPMSet>
                    				<ExplicitPath URI="String"/>
                 				   <RPMList>
                    				      <RPM Name="String" Version="String">
                    					<InstallOption Option="--noscripts"/>
                       				   	</RPM>
                 				   </RPMList>
              			</RPMSet>
         		</RPMIncludeList>
         		<RPMExcludeList>
              			<RPM Version="String" Name="String"/>
         		</RPMExcludeList>
         		<DistributionSource URI="String" ImageClass="String"/>
     	</RPMSpecifications>
   	  <UserGroupSpecifications>
		        <UserList>
      <User Name="String" EncryptedPassword="String" HasPassword="1" UserId="String" HomeDirectory="String" MainGroup="String">
                    				<GroupAssociation Name="String"/>
      		        	</User>
         		</UserList>
      		   <GroupList>
        			      <Group Name="String" GroupId="String"/>
      		   </GroupList>
         		<RootSettings DisableRootAccess="false" EncryptedRootPassword="x"/>
  	   </UserGroupSpecifications>
	     <Description>
String
</Description>
</ImageSpecification>

C.3.2 Defined ImageSpecification.xml Document

The following Image Specification Documents are populated with image data. They illustrate how an Image Specification Document can be defined.

Java Image Specification Document

<ImageSpecification xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="/opt/SLES/POS/ImageSpecification.xsd" SchemaVersion="1" SchemaRevision="1" ImageName="java" ImageVersion="2.0.21" Type="ext2" ImageType="diskful" Timezone="US/Mountain" Locale="en_US" Keytable="us.map.gz">
   <IncludeSpecificationList>
      <IncludeSpecification URI="/opt/SLES/POS/system/templates
        /support/java.xml"/>
      <IncludeSpecification URI="/opt/SLES/POS/system/templates
        /addons/ibmjava.xml"/>
      <IncludeSpecification URI="/opt/SLES/POS/system/templates
        /addons/evtouch.xml"/>
      <IncludeSpecification URI="/opt/SLES/POS/system/templates
        /drivers/net.xml"/>
      <IncludeSpecification URI="/opt/SLES/POS/system/templates
        /drivers/scsi.xml"/>
      <IncludeSpecification URI="/opt/SLES/POS/system/templates
        /drivers/drivers.xml"/>
      <IncludeSpecification URI="/opt/SLES/POS/system/templates
        /drivers/usb.xml"/>
   </IncludeSpecificationList>
   <DriverSpecifications>
      <DriverIncludeList>
         <DriverSet Name="netdrivers">
         <ExplicitPath URI="/kernel/drivers/net/"/>
            <DriverList>
               <Driver Name="pcnet32.ko"/>
               <Driver Name="mii.ko"/>
               <Driver Name="natsemi.ko"/>
               <Driver Name="tulip/tulip.ko"/>
               <Driver Name="eepro100.ko"/>
               <Driver Name="e100.ko"/>
               <Driver Name="e1000/e1000.ko"/>
            </DriverList>
         </DriverSet>
         <DriverSet Name="drivers">
         <ExplicitPath URI="/kernel/"/>
            <DriverList>
               <Driver Name="net/packet/*"/>
               <Driver Name="fs/ext3/*"/>
               <Driver Name="fs/jbd/*"/> 
               <Driver Name="drivers/ide/*"/>
               <Driver Name="drivers/dump/*"/>
               <Driver Name="drivers/cdrom/*"/>
               <Driver Name="drivers/char/dcs/*"/>
               <Driver Name="drivers/pci/*"/>
               <Driver Name="drivers/input/keyboard/ikbps.ko"/>
            </DriverList>
         </DriverSet>
         <DriverSet Name="usbdrivers">
         <ExplicitPath URI="/kernel/drivers/usb/"/>
            <DriverList>
               <Driver Name="host/uhci-hcd.ko"/>
               <Driver Name="host/ohci-hcd.ko"/>
               <Driver Name="core/usbcore.ko"/>
               <Driver Name="host/ehci-hcd.ko"/>
               <Driver Name="storage/usb-storage..ko"/>
               <Driver Name="input/hid.ko"/>
            </DriverList> 
         </DriverSet>
         <DriverSet Name="scsidriver">
         <ExplicitPath URI="/kernel/drivers/scsi/"/>
            <DriverList>
               <Driver Name="scsi_mod.ko"/>
               <Driver Name="sg.ko"/>
               <Driver Name="sd_mod.ko"/>
               <Driver Name="st.ko"/>
               <Driver Name="sr_mod.ko"/>
            </DriverList>
         </DriverSet>
      </DriverIncludeList>
   </DriverSpecifications>
   <RPMSpecifications>
      <RPMIncludeList>
         <RPMSet>
            <RPMList>
               <RPM Name="acl"/>
               <RPM Name="atftp"/>
               <RPM Name="bash"/>
               <RPM Name="grep"/>
               <RPM Name="gzip"/> 
               <RPM Name="ncurses"/>
               <RPM Name="netcfg"/>
               <RPM Name="openslp"/>
               <RPM Name="openssh"/>
               <RPM Name="openssl"/>
               <RPM Name="perl"/>
               <RPM Name="permissions"/>
               <RPM Name="readline"/>
               <RPM Name="resmgr"/>
               <RPM Name="sed"/>
               <RPM Name="setserial"/>
               <RPM Name="sld-release"/>
               <RPM Name="submount"/>
               <RPM Name="sysconfig"/>
               <RPM Name="syslogd"/>
               <RPM Name="tar"/>
               <RPM Name="tcpd"/> 
               <RPM Name="usbutils"/>
               <RPM Name="zlib"/> 
               <RPM Name="telnet"/> 
            </RPMList>   
         </RPMSet>  
      </RPMIncludeList>
      <DistributionSource URI="/opt/SLES/POS/system/templates
        /Distribution.xml" ImageClass="NLD"/>
   </RPMSpecifications>
   <UserGroupSpecifications>
      <RootSettings DisableRootAccess="false" EncryptedRootPassword=
        "x"/>        
   </UserGroupSpecifications>
</ImageSpecification>

Firefox Image Specification Document

The Firefox Image Specification Document adds the Firefox browser to a client image. The RequiredList element indicates that this add-on feature requires the browser.xml file; therefore, it can be added only to the Browser or Desktop client images.

<ImageSpecification xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="/opt/SLES/POS/ImageSpecification.xsd" SchemaVersion="1" SchemaRevision="1">
   <Description>
   Mozilla Firefox, formerly known as Phoenix and Firebird, is a
   redesign of the Mozilla browser component, similar to Galeon, 
   K-Meleon and Camino, but written using the XUL user interface
   language and designed to be cross-platform. It’s a standalone
   application instead of part of the Mozilla Application Suite.
   </Description>
   <RequiredList>
   <Require URI="/opt/SLES/POS/system/templates/support/browser.xml"/>
   </RequiredList>
   <RPMSpecifications>
      <RPMIncludeList>
         <RPMSet>
            <RPMList>
               <RPM Name="MozillaFirefox"/>
               <RPM Name="gconf2"/>
               <RPM Name="gnome-vfs2"/>
               <RPM Name="libbonobo"/>
               <RPM Name="libgnome"/>
               <RPM Name="orbit2"/>
               <RPM Name="alsa"/>
               <RPM Name="audiofile"/>
               <RPM Name="esound"/>
               <RPM Name="libxml2"/>
               <RPM Name="libidl"/>
               <RPM Name="gnome-mime-data"/>
               <RPM Name="desktop-data-SLD"/>
               <RPM Name="bzip2"/>
               <RPM Name="cdparanoia"/>
               <RPM Name="fam"/>
               <RPM Name="libsmbclient"/>
               <RPM Name="dialog"/>
               <RPM Name="gtk2"/>
            </RPMList>
         </RPMSet>
      </RPMIncludeList>
   </RPMSpecifications>
</ImageSpecification>