<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
 "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">

<channel>
<title>ARB Security Solutions  -- SharePoint Security -- Adam Buenz [SharePoint MVP]</title>
<link>http://www.sharepointsecurity.com/index.html</link>
<description>ARB Security Solutions - Adam Buenz</description>
<language>en-us</language>

<item>
<title>Change Management For SharePoint Security Policies (Diagram)</title>
<link>http://www.sharepointsecurity.com/index.html/modules.php?name=News&amp;file=article&amp;sid=34</link>
<description>&lt;p align=&quot;center&quot;&gt;
&lt;img width=&quot;553&quot; height=&quot;949&quot; border=&quot;0&quot; align=&quot;middle&quot; src=&quot;images/Change_Request_Diagram.jpg&quot; /&gt;&lt;/p&gt;</description>
</item>

<item>
<title>Change Management For SharePoint Security Policies</title>
<link>http://www.sharepointsecurity.com/index.html/modules.php?name=News&amp;file=article&amp;sid=33</link>
<description>
&lt;table width=&quot;100%&quot; border=&quot;1&quot;&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Introduction - SharePoint 
Security Policy Checklist&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;The [SharePoint Portal Owning Organization]&amp;nbsp; SharePoint Security 
Polices provide the operational detail required for the successful 
implementation of the SharePoint Security program. These security policies were 
developed based on, and cross referenced to, the Security Policy Standards. In 
addition these policies have been developed by interpreting HIPAA, and other 
legislation and legal requirements, understanding business needs, evaluating 
existing technical implementations, and by considering the cultural environment. &lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Changing Environment&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;The business, technical, cultural, and legal environment of [SharePoint 
Portal Owning Organization] , as it relates to information technology use and 
security, is constantly changing. The SharePointSecurity Policies will be 
revised as needed to comply with changes in law or administrative rules or to 
enhance its effectiveness. &lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Technology Neutral&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;These polices are technology neutral and apply to all aspects of information 
technology. Emerging technologies or new legislation however, will impact these 
practice standards over time.&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Ownership and Approval&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;
		
The SharePoint Security Polices are owned by [SharePoint Portal Owning 
Organization].&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Change Drivers&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;
		
A number of factors could result in the need or desire to change the SharePoint 
Security Polices. These factors include, but are not limited to:&lt;ul&gt;
	&lt;li&gt;Review schedule&lt;/li&gt;
	&lt;li&gt;New legislation&lt;/li&gt;
	&lt;li&gt;Newly discovered security vulnerability&lt;/li&gt;
	&lt;li&gt;New technology&lt;/li&gt;
	&lt;li&gt;Audit report&lt;/li&gt;
	&lt;li&gt;Business requirements&lt;/li&gt;
	&lt;li&gt;Cost/benefit analysis&lt;/li&gt;
	&lt;li&gt;Cultural change&lt;/li&gt;
&lt;/ul&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Change Process&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;
		
Updates to the [SharePoint Portal Owning Organization]&amp;nbsp; SharePoint Security 
Policies, which include establishing new policies, modifying existing policies, 
or removing policies, can result from three different processes:&lt;ul&gt;
	&lt;li&gt;At least annually, the [SharePoint Portal Owning Organization] 
	SharePoint administrator, or designate, will review the SharePoint Security 
	Policies for possible addition, revision, or deletion. An addition, 
	revision, or deletion is created if it is deemed appropriate.&lt;/li&gt;
	&lt;li&gt;Every time new SharePoint technology (webpart, site definition) is 
	introduced into [SharePoint Portal Owning Organization]&amp;nbsp; a security 
	assessment must be completed. The result of the security assessment could 
	necessitate changes to the SharePoint Security Policies before the new 
	technology is permitted for use at [SharePoint Portal Owning Organization] .&lt;/li&gt;
	&lt;li&gt;Any user may propose the establishment, revision, or deletion of any 
	practice standard at any time. These proposals should be directed to the 
	[SharePoint Portal Owning Organization] SharePoint administrator who will 
	evaluate the proposal and make recommendations to the [SharePoint Portal 
	Owning Organization] management.&lt;/li&gt;
&lt;/ul&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Change Distribution and 
Notification&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;
		
Once a change to the SharePoint Security Policies has been approved by 
[SharePoint Portal Owning Organization], or designate, the following steps will 
be taken as appropriate to properly document and communicate the change:&lt;ul&gt;
	&lt;li&gt;The appropriate [SharePoint Portal Owning Organization] SharePoint 
	administrator Security web pages will be updated with the change&lt;/li&gt;
	&lt;li&gt;Training and compliance materials will be updated to reflect the change&lt;/li&gt;
	&lt;li&gt;The changes will be communicated using standard [SharePoint Portal 
	Owning Organization]&amp;nbsp; communications methods (internal cable TV system, 
	announcements web part, newsletters, and communications meetings)&lt;/li&gt;
&lt;/ul&gt;
		&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;/table&gt;</description>
</item>

<item>
<title>SharePoint Security Policy Checklist</title>
<link>http://www.sharepointsecurity.com/index.html/modules.php?name=News&amp;file=article&amp;sid=32</link>
<description>
&lt;table width=&quot;100%&quot; border=&quot;1&quot;&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Introduction - SharePoint 
Security Policy Checklist&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;The SharePoint Server Security Policy Checklist provides a concise view of 
the state of [SharePoint Portal Owning Organization] security policy development 
and implementation for an organization. &lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Required Policies&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;The SharePoint Server Security Policy Checklist indicates which policies are 
required by default by [SharePoint Portal Owning Organization] and which 
policies are optional based on the SharePoint resources used by an organization. 
For required policies indicate &amp;ldquo;yes&amp;rdquo; in each column where the column heading 
indicates a true statement and a targeted completion date in each column where 
the column heading indicates a condition that has not yet been met. &lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Optional Policies&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;This portion of the SharePoint Server Security Policy Checklist is for those 
policy areas that may be required depending on the SharePoint resources in use 
for [SharePoint Portal Owning Organization]. For these policies examine the 
requirements statement associated with the policy. If the policy is required 
based on the requirements statement, complete the remaining columns as indicated 
above. If the policy is not required based on the requirements statement simply 
mark the Required column &amp;ldquo;no&amp;rdquo;. &lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;188&quot; valign=&quot;top&quot; align=&quot;center&quot;&gt;&lt;strong&gt;Analysis Matrix&lt;/strong&gt;&lt;/td&gt;
		
&lt;td&gt;
		
The Analysis Matrix .is provided as a tool to assist with the completion of the 
SharePoint Server Security Policy Checklist.&lt;br /&gt;
This matrix describes security elements, gives an industry best practice of the 
intent of the security element, indicates where the policy for a security 
element is most likely to be documented, and provides locations to document 
dates and plans.
		&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;/table&gt;
&lt;br /&gt;

&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;&lt;strong&gt;Policy Checklist&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;&lt;strong&gt;Required&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;&lt;strong&gt;Published&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;&lt;strong&gt;Approved&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;&lt;strong&gt;Adopted&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;&lt;strong&gt;Communicated &lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;&lt;strong&gt;Revised&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Acceptable Use&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p class=&quot;MsoFooter&quot;&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Account Management&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Admin/Special Access&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Change Management&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Disaster Recovery&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Incident Management&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Password&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Physical Security&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Privacy&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Security Training&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Software Licensing&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Virus Protection&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Yes&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Intrusion Detection&lt;/p&gt;
		
&lt;p&gt;
		&amp;middot;        
		Required for networked environments.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Portable Computing&lt;/p&gt;
		
&lt;p&gt;
		&amp;middot;        
		Required for organizations supporting laptops, PDA, or 
		other portable devices.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Security Monitoring&lt;/p&gt;
		
&lt;p&gt;
		&amp;middot;        
		Required for networked environments.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Server Hardening&lt;/p&gt;
		
&lt;p&gt;
		&amp;middot;        
		Required for environments with servers.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;System Development&lt;/p&gt;
		
&lt;p&gt;
		&amp;middot;        
		Required for environments where software is developed&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;415&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt;Vendor Access&lt;/p&gt;
		
&lt;p&gt;
		&amp;middot;        
		Required for environments where access to or from entities 
		external to organization is required. Outsourced maintenance, 
		management, and network services must be considered.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;84&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;78&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;114&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;72&quot; valign=&quot;top&quot;&gt;
		
&lt;p&gt; &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt; &lt;/p&gt;
&lt;h1&gt; &lt;/h1&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt;
	
		
&lt;tr&gt;
			
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
			
&lt;p align=&quot;left&quot;&gt;
			Analysis Matrix&lt;/p&gt;
			
&lt;p align=&quot;left&quot;&gt;&lt;strong&gt;
			
			Security Element&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
			
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
			
&lt;p align=&quot;left&quot;&gt;&lt;strong&gt;
			
			Industry Best Practice&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
			
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
			
&lt;p align=&quot;left&quot;&gt;&lt;strong&gt;
			
			Location&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
			
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
			
&lt;p align=&quot;left&quot;&gt;&lt;strong&gt;
			
			Last Revision Date&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
			
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
			
&lt;p align=&quot;left&quot;&gt;&lt;strong&gt;
			
			Implementation&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
		&lt;/tr&gt;
	
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Policy Development 
		and Evaluation Process&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documented 
		development process for the continual updating and review of security 
		policies and procedures and compliance. Includes process for the 
		continuous review and measurement of policy effectiveness.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Ethics Policy&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documented 
		high-level statement of ethics standards.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Security Policies&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Acceptable Use&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		presenting general guidelines defining scope, behavior, and practices 
		for uses; monitoring of compliance; and polices pertaining to special 
		access users.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Acceptable Use 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Account Management&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		requiring standards and procedures for the creation, distribution, 
		revocation of user accounts.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Account Management 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Proprietary 
		Information&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		establishing responsibility and appropriate measures for protecting 
		proprietary information from disclosure or modification.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		E-Mail Access and 
		Use&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		presenting general guidelines defining scope, behavior, and practices 
		for uses; monitoring of compliance; and polices pertaining to special 
		access users.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Acceptable Use 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Escalation 
		Procedures&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Incident Reporting&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Incident Handling&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Incident 
		Investigation&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Response plan for 
		handling and resolving security incidents.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Incident Management 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Internet Access&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		presenting general guidelines defining scope, behavior, and practices 
		for uses; monitoring of compliance; and polices pertaining to special 
		access users.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Acceptable Use 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Portable Computing 
		Policy&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		presenting general guidelines defining scope, behavior, and practices 
		for uses; monitoring of compliance; and polices pertaining to special 
		access users.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Passwords&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		requiring standards and procedures for the composition, creation, 
		distribution, use, and revocation of passwords.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Password Policy
		&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Privacy&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		establishing responsibility and appropriate measures for protecting 
		private and personally identifying information. Minimum efforts may be 
		required by legislation.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Privacy Policy
		&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Security Training&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Awareness and 
		training program in information security and the protection of 
		information resources for personnel who come in contact with sensitive 
		resources.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Security Training 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Software Licensing&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		establishing responsibility and appropriate compliance measures.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Voice Mail Access 
		and Use&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		presenting general guidelines defining scope, behavior, and practices 
		for uses; monitoring of compliance; and polices pertaining to special 
		access users.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Acceptable Use 
		Policy &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Special Access 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Physical Security&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Basic Physical 
		Security&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Controlled building 
		access, mandatory access controls for information systems; policy for 
		use of controls and penalties for non-compliance.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Physical Security 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Natural Disasters&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documented plan for 
		the recovery of critical business functions in the case of flood, fire, 
		loss of environmental controls, or power loss.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Backup/Disaster 
		Recovery Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Data Access&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Data Classification&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		policies and procedures for the classification, identification, and 
		handling of sensitive information.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Data Retention&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documented policies 
		and procedures for the archival and retention of sensitive data.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Disposal of 
		Sensitive Data&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documented policies 
		and procedures for the destruction of media containing sensitive data.&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Integrity and 
		Confidentiality&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Controls for the 
		assurance of data integrity, including those that pertain to 
		confidentiality and privacy compliance policy.&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Vendor Access Policy
		&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Security Monitoring 
		Policy &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Virus Protection 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		System Security 
		Tools&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Intrusion Detection&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Security Monitoring&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Virus Detection&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		The use of audit 
		controls and tools to periodically review security compliance.&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Security Monitoring 
		Policy &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Intrusion Detection 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Systems Development&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Development 
		Procedures&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documented policies 
		and procedures governing acceptable standards of testing and 
		documentation, as well as those for the lifecycle that places a system 
		into production.&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		System Development 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Systems 
		Administration&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Responsibilities and 
		Roles&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documented policies 
		that define the roles and responsibilities of system administrators and 
		their relation to the computer systems and network infrastructure in 
		their care.&lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Contingency Planning&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Contingency Planning&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Documentation 
		establishing responsibility for policies and procedures and mechanisms 
		for the creation, testing, and revision of contingency plans for 
		business critical systems.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Backup/Disaster 
		Recovery Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Backup&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Policies and 
		procedures and mechanisms for the archival, retention, and recovery of 
		data. Periodic testing of recovery schemes.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Backup/Disaster 
		Recovery Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Off-Site Backup&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Copies of backup 
		media and logs are stored off-site in a secured facility on a regular 
		basis. Policies and procedures exist governing the transfer and handling 
		of media.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Backup/Disaster 
		Recovery Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Maintenance&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Equipment&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Computer equipment 
		is maintained in accordance with manufacturer&amp;rsquo;s recommendations. Records 
		of faults or suspected faults are maintained. Critical systems are under 
		maintenance contract in proportion to their significance.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Server Hardening 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
	
&lt;tr&gt;
		
&lt;td width=&quot;159&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Software&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;176&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Policies and 
		procedures for the monitoring of patch and vulnerability information 
		sources, their review, remediation, and the creation of new baseline 
		information for updated systems.&lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;233&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Change Management 
		Policy &lt;/p&gt;
		
&lt;p align=&quot;left&quot;&gt;
		Server Hardening 
		Policy &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;67&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
		
&lt;td width=&quot;274&quot; valign=&quot;top&quot;&gt;
		
&lt;p align=&quot;left&quot;&gt;
		 &lt;/p&gt;
&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;</description>
</item>

<item>
<title>SharePoint Security Policy Index</title>
<link>http://www.sharepointsecurity.com/index.html/modules.php?name=News&amp;file=article&amp;sid=31</link>
<description>&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot;&gt;
	&lt;!-- MSTableType=&quot;layout&quot; --&gt;
	
&lt;tr&gt;

		
&lt;td width=&quot;80%&quot; valign=&quot;top&quot;&gt;
		&lt;!-- MSCellType=&quot;ContentBody&quot; --&gt;
		
&lt;p align=&quot;center&quot;&gt;&lt;u&gt;&lt;strong&gt;SharePoint Policy Template Index&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;SharePoint Security Policies are management instructions indicating a course of action, a 
		guiding principle, or an appropriate procedure that is expedient, 
		prudent, or advantageous. Policies are high-level statements that 
		provide guidance to workers who must make present and future decisions. 
		It would also be correct to say that these SharePoint policies are generalized 
		requirements that must be written down and communicated to certain 
		groups of people inside, and in some cases, outside, the organization. 
		Although SharePoint security policies vary considerably by 
		organization, they typically include general statements of goals, 
		objectives, beliefs, ethics, controls, and worker responsibilities. 
		&lt;/p&gt;
&lt;p&gt;Policies are higher-level requirement statements than standards, 
		although both types of management instructions require compliance. 
		Policies provide general instructions, while standards provide specific 
		technical requirements. SharePoint standards cover details such as systems design 
		concepts, implementation steps, software interface mechanisms, software 
		algorithms, and other specifics. Standards provide a measure for 
		comparison in quantitative or qualitative terms. Standards would, for 
		example, define the number of secret key bits required in an encryption 
		algorithm. Policies, on the other hand, would simply define the need to 
		use an approved encryption process when sensitive information is sent 
		over public networks such as the Internet from your SharePoint environment.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;Standards will need to be 
		changed considerably more often than policies because the manual 
		procedures, organizational structures, business processes, and 
		information systems technologies mentioned in standards change so 
		rapidly. This is in contrast to policies, which are intended to last for 
		many years. &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
		Policies are generally aimed at a wider audience than standards. For 
		example, a policy requiring the use of computer virus packages would 
		apply to all personal computer users, but a standard requiring the use 
		of public key digital certificates could be directed only at staff that 
		conducts organizational business over the Internet.&lt;br /&gt;
		&lt;br /&gt;
		Policies are distinct from, and at a considerably higher-level than 
		procedures, sometimes called SharePoint standard operating procedures (SSOP). 
		Procedures are specific operational steps or methods that workers must 
		employ to achieve a certain goal. A policy statement describes only the 
		general means for addressing a specific problem. Policies should not 
		become detailed or lengthy, otherwise, it becomes a procedure or can 
		become too intermingled with procedures. For instance, in many 
		information technology departments there are specific procedures for 
		performing back-ups of server hard drives. In this example, a policy 
		could describe the need for back-ups, for storage off-site, and for 
		safeguarding the back-up media (using encryption, physical security, 
		etc.). A standard could define the software to be used to perform 
		back-ups and how to configure this software. A procedure could describe 
		how to use the back-up software, the timing for making back-ups, and 
		other ways that humans interact with the back-up system (how to get 
		approvals by management, how to transfer the storage media to a 
		transportation company, etc.).&lt;br /&gt;
		&lt;br /&gt;
		One of the common problems observed in policy development and review 
		involves the combination of policies, standards, and procedures in a 
		single document. When it comes time to update the document, the process 
		is needlessly time-consuming and confusing. This is because the three 
		different types of documents all have different levels of detail and 
		focus on different things.&lt;/p&gt;&lt;p&gt;
		The combination of policies, standards, and procedures in a single 
		document is also not recommended because it can make the location of 
		relevant information much more difficult for the reader. This 
		combination approach also is inefficient in terms of distribution 
		because a lot of irrelevant information is sent to people who really 
		don&amp;rsquo;t need it. To simplify document maintenance, usage, and 
		cross-referencing, be sure to use separate documents for policies, 
		standards, and procedures.&lt;/p&gt;
&lt;p&gt;Policies are also different from controls 
		(also known as countermeasures, security measures, and safeguards). A 
		control is a device or a mechanism used to regulate or guide the 
		operation of a machine, apparatus, or system. An example of a control 
		would be encryption of sensitive data stored on floppy disks. In many 
		cases, policies provide broad objectives that are met with controls. For 
		instance, a policy prohibiting actual or apparent conflicts of interest 
		could be partially met via a control requiring employees to sign a 
		statement indicating they have read the code of conduct and agree to 
		comply. Likewise, in many instances, control measures are dictated 
		directly by policy. For example, a requirement to sign a statement of 
		compliance with a code of conduct might itself be a policy.&lt;/p&gt;
&lt;p&gt;In 
		general, policies state the areas on which management attention should 
		focus. For example, a policy might dictate that all software be fully 
		tested before being used for production processing. Management, in most 
		instances, will need to make a number of decisions about controls in 
		order to meet the requirements of a policy. For example, the control 
		measures in support of this testing policy could include software change 
		control systems, a standard development process methodology, 
		documentation standards, and a set of standard testing procedures. The 
		policy may be deliberately vague about the control measures to be used 
		so that management retains the latitude to change controls as evolving 
		technology and business conditions dictate.&lt;/p&gt;
&lt;/td&gt;
			
&lt;td width=&quot;20%&quot; valign=&quot;top&quot;&gt;
			&lt;!-- MSCellType=&quot;NavBody&quot; --&gt;
			
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
			
&lt;tr&gt;
				
&lt;td align=&quot;center&quot;&gt;
				&lt;u&gt;&lt;strong&gt;Policy Templates&lt;/strong&gt;&lt;/u&gt;&lt;/td&gt;
			&lt;/tr&gt;

		&lt;/table&gt;
			
&lt;u&gt;&lt;u&gt;		&lt;/u&gt;&lt;/u&gt;
&lt;table width=&quot;186&quot; height=&quot;1090&quot; border=&quot;0&quot;&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article5.html&quot;&gt;
				SharePoint Portal Server Acceptable Use Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article21.html&quot;&gt;
				SharePoint Portal Server Hardening Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article20.html&quot;&gt;
				SharePoint Portal Security Training Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article19.html&quot;&gt;
				SharePoint Portal Security Monitoring Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt; &lt;a href=&quot;article18.html&quot;&gt;SharePoint 
				Portal Physical Access Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article22.html&quot;&gt;
				SharePoint Portal System Development Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt; &lt;a href=&quot;article23.html&quot;&gt;SharePoint 
				Portal Vendor Access Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article6.html&quot;&gt;
				SharePoint Portal Account Management Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article7.html&quot;&gt;
				SharePoint Portal Administrator / Consultant Access Policy 
				Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article17.html&quot;&gt;
				SharePoint Portal Password Policy Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article14.html&quot;&gt;
				SharePoint Portal Privacy Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article8.html&quot;&gt;
				SharePoint Portal Backup/DRP Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article13.html&quot;&gt;
				SharePoint Portal Intrusion Detection Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article12.html&quot;&gt;
				SharePoint Portal Incident Management Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			
&lt;tr&gt;
				
&lt;td width=&quot;24&quot;&gt;
		&lt;img width=&quot;24&quot; height=&quot;24&quot; border=&quot;0&quot; src=&quot;images/templatemenu.gif&quot; /&gt;&lt;/td&gt;
				
&lt;td&gt;
				&lt;a href=&quot;article10.html&quot;&gt;
				SharePoint Portal Computer Virus Detection Policy Template&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;/table&gt;
&lt;u&gt;&lt;u&gt;			&lt;/u&gt;&lt;/u&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;/table&gt;
</description>
</item>

<item>
<title>Using SharePoint to Build SOA (Services Oriented Architecture)</title>
<link>http://www.sharepointsecurity.com/index.html/modules.php?name=News&amp;file=article&amp;sid=30</link>
<description>
&lt;table width=&quot;100%&quot; border=&quot;1&quot;&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;strong&gt;Definitions&lt;/strong&gt;&lt;p&gt;SharePoint as a communications and collobration solutions provides robust faculities to build out scalable and extendable architectures that conform with SOA. We will begin by defining how we use the information architectures terms, information
management, document management and content management. Because these terms are
considered interchangeable concepts, it is best to clarify the
definitions as followed:&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;Document
     Content &amp;ndash; Typically, the human mind tends to separate a document from the
     actual contents. So for example, instead of saying, &amp;ldquo;I read what you
     wrote&amp;rdquo; we are saying, &amp;ldquo;We read the document&amp;rdquo;. Therefore, we are conveying
     that we not only saw the document, but we also read the contents.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
&lt;li&gt;Document
     Containers &amp;ndash; Because of the existence of computers, the human mind has
     begun to regard documents and files as two different items. Instead of
     saying &amp;ldquo;The data is in that file&amp;rdquo; we say &amp;ldquo;The required data is contained
     within that document&amp;rdquo;. We have begun to distinguish between the container
     and the document.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
&lt;li&gt;Document
     Vehicles &amp;ndash; The document has become a mode of transportation of its
     content. The age of electronic files or documents, allow for easy
     transportation via email. So now instead of searching for specific
     information to send electronically, you can send the entire document
     electronically.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;In the above three descriptions you found three different
document concepts. These documents could hold digital images or information;
however, if there is no context within the document, it is nothing more than a
data collection. Because of this analogy we have come to define the document
as, a container that serves as an information vehicle, stored in a SharePoint document library. In regards to building
our information architecture with SharePoint which can leverage the XML web
service asset, when you have a document it is a river of characters, the
structures internally come to serve as and information vehicle in regards to
the data contained in the characters. &lt;/p&gt;


&lt;p&gt;The main issue that causes a problem is that the human mind
tends to be far too restrictive when it concerns the definition of a document.
We appear to understand a document as something that is written on a piece of
paper or that of its equivalent electronically. What is being described is that
a document is not limited; it can mean a wide variety of things such as,
instant messages, forum messages, e-mails, processes, graphics and many other
forms of data.&lt;/p&gt;


&lt;p&gt;You see, information that we gather is usually only derived
from the typical document in small quantities. We tend to gather and learn more
information in regards to other means such as meetings, discussions and email.
We tend to only strive to learn what they give us, we typically do not step
outside of context to gather information. Items such as a sales report, emails
or a meeting can all contain knowledge that can be extremely valuable.&lt;/p&gt;


&lt;p&gt;In general, companies tend to offer a variety of manuals,
guidelines and visual guides that are written to guide a user in the direction
of the way the company would like to run. This helps to ensure that nothing can
be forgotten or left out because the documentation is always present. It is
true that people tend to retain knowledge with the use of visual aids, this
means not only the printed or written words but holds true for images as well.
We develop visual cues that is geared to guide us with reading as well as
maintain and understand the information. Cues are used as signals in
understanding the information in a way that the creator has intended. For
example, within a document if the creator emphasizes a word using &lt;strong&gt;Bold,&lt;/strong&gt; &lt;em&gt;Italics&lt;/em&gt; or &lt;u&gt;Underlining&lt;/u&gt; it will draw the reader&amp;rsquo;s attention
to the specific area. &lt;strong&gt;&lt;em&gt;&lt;u&gt;If a writer were to do all three at once&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt;,
this would let the reader know to pay particular attention to that sentence.&lt;/p&gt;


&lt;p&gt;When we use visual aids within the structure of a document
we are enabling the mind to process it and understand the content at a better
rate. However, it is important to use these visual aids with caution, the
format requires that the reader be able to recognize the cue and understand it.
When using written words in your document structure, people generally make use
of captions, emphasis, titles and headings, these are things the mind typically
understands.  For other documentation,
the reader may need to be able to understand the vocabulary that is used within
the document. For example, a computer, if you use a workflow diagram, the
computer will not understand the cues you are giving it. It will need to know
what to do when it encounters this vocabulary as well as how to recognize it.
This is the same scenario as markup, you are giving the processor a cue to the
action or actions you need it to perform on the content. &lt;/p&gt;


&lt;p&gt;Management of content requires information to be organized
in an upstream manner. This has to occur in a way where the individual
ingredients of the content  is able to
keep each identity until the time of use. Doing so will allow the client to
individually choose them or the ability to combine them when they feel it is
necessary. This type of organization creates a clear and precise choice for the
user, as well as allowing the information to be configured in a different
manner for reuse.&lt;/p&gt;


&lt;p&gt;We will now take a look at a few topics that are closely
related to each other, these will include upstream content organization, then
we will investigate the impact they have on authors. &lt;/p&gt;


&lt;p&gt;Structure plays an important role in all types of
documentation. For instance, when sending an e-mail to a colleague or client we
will structure it in such a way that is appealing to the reader. We will spend
time thinking of a title that is catchy and give great thought to the
recipients of the e-mail. Rather you know it or not, this is structuring.&lt;/p&gt;


&lt;p&gt;When looking at it in terms of content management, we but
begin to understand that the text within the document cannot be a group of
characters, instead we must understand that the content is made up with the
following:&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;Specific
     content building blocks or pieces of information&lt;/li&gt;

&lt;li&gt;A
     reference or references of other pieces of information with the same
     content or outside of it.&lt;/li&gt;

&lt;li&gt;Specified
     rules that state how the blocks can be created and the configuration of
     the content.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Packaging is just as important, each block of information
must have a package that will allow the information to be stored, delivered,
and moved without losing any of the content or damage to the content. In
general, every block of information must have the ability to be independent, if
the information is generally part of a whole, the relationship of all aspects
needs to be known.&lt;/p&gt;


&lt;p&gt;Packages that we create typically share properties and
characteristics that are important to each other. It is important to maintain
predictability with any type of content processing. You must be able to
understand and describe the characteristics so offer this predictability. To
better understand this, consider a word processing package template. In order
to maintain a certain model of use, you must pay close attention to all
particular details. By leveraging SharePoint and SharePoint XML web services,
you are allowing this type of predictability that is needed.&lt;/p&gt;

&lt;p&gt;This type of packaging and content are made useful in a
variety of aspects in the world today. Many people create various items for
users such as, form letters, templates and models. These are typically provided
bundled with an application or the user will have the ability to create their
own structure using any tools that are built in the application, for example,
application programming languages or macro editors. When a user conforms to any
of these molds they are establishing structure, that are similar to database
form fields, and all of the content becomes managed within the mold. No matter
the tools used or the approach that is used the goal remains the same:&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;The
     ability to eliminate tasks that are repeated when creating text of similar
     structure&lt;/li&gt;

&lt;li&gt;The
     ability to maintain control over the way the information is provided.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The molds are typically created to use with presentations,
however many people feel they are used to receive content that is predefined
and of a type that is expected. In general, these are created prior to the
texts that are to use them. It is important that if you should find yourself
using a structure feature that is provided by a commercial package of word
processing, that you be certain to use design features instead of default.
Specifically, you should try to map their use with the structure within your
content. &lt;/p&gt;


&lt;p&gt;One of the first steps to take in regards to content
management is to knowledge molds that any enterprise would use or create. It
must be understandable, because if the content is not created correctly the
first time, time has just been wasted because of the damage repairs.&lt;/p&gt;


&lt;p&gt;Here are some important things you should remember:&lt;/p&gt;


&lt;ul&gt;
&lt;li&gt;Be
     certain the content works well with the mold. If it does not work, you
     should not break the mold, search for another mold that will allow the
     content to work well. For example, if you have a mold that is created for
     an email you will not be able to fit a sales report into that mold.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
&lt;li&gt;Be
     certain that contents can still be identified by the ingredients, a user
     should be able to specifically identify an area of text that give a
     description of your process or holds your forecast in sales.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
&lt;li&gt;Knowledge
     molds should create an environment for an author that will allow them to
     be concentrated on the content instead of the structure. Additionally, it
     should provide support in the areas of validating and adding any
     information in regards to reference.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Proper labeling will allow for a package to be identified in
the proper manner. It is important to note that even though the labeling and
packaging may be clear, it does not allow for identifying the quality of the
content. It is important to understand and manage how your content will find
the way into the package. You will need to manage who is allowed to put the
content in, how to apply the quality controls, a required sell by date and what
will allow you to determine that the content processing is completed.&lt;/p&gt;

		&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;

</description>
</item>

<item>
<title>web service</title>
<link>http://www.sharepointsecurity.com/index.html/modules.php?name=News&amp;file=article&amp;sid=29</link>
<description>
&lt;p class=&quot;bodytext&quot;&gt;Let&amp;rsquo;s dive right into some code shall we? As you can see
from the following code, a complete XML Web Service is very easy to produce in
ASP.NET.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&amp;lt;%@ WebService language=&amp;quot;C#&amp;quot;
class=&amp;quot;Calculator&amp;quot; %&amp;gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System.Web.Services;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Calculator {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [WebMethod]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double
Add(double a, double b) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   return a + b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  }&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        So how does
the above code work? The most important line in the ASMX file is the page
directive. This directive specifies the language which the Web Service is
written in, and which public class to reflect to determine web methods. Web
methods must be adorned with the &lt;strong&gt;System.Web.Services.WebMethodAttribute&lt;/strong&gt;
attribute and must be public. &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        The add
method can process XML in a particular format: &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  
&lt;a&gt;10&lt;/a&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  
&lt;strong&gt;20&lt;/strong&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;This message consists of a standard SOAP Envelope and
Body. The Body contains a child element called &amp;ldquo;Add&amp;rdquo; in the namespace
&amp;ldquo;http://tempuri.org/&amp;rdquo;. The &amp;ldquo;Add&amp;rdquo; element relates to the method &lt;strong&gt;Calculator.Add&lt;/strong&gt; adorned with the &lt;strong&gt;WebMethod&lt;/strong&gt; attribute in the first code snippet.
The &amp;ldquo;Add&amp;rdquo; element contains two children &amp;ldquo;a&amp;rdquo; and &amp;ldquo;b&amp;rdquo;. Each of those elements
relates to a single parameter of &lt;strong&gt;Calculator.Add&lt;/strong&gt;.
After the code in Calculator.Add is executed, the following XML is returned:&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  
30&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;The &amp;ldquo;AddResponse&amp;rdquo; element is the default name of the
response element that ASP.NET generates for you. By default, all of your
ASP.NET Web Methods will have the string &amp;ldquo;Response&amp;rdquo; appended to the name of the
method. The only child element of &amp;ldquo;AddResponse&amp;rdquo; is &amp;ldquo;AddResult&amp;rdquo;. The &amp;ldquo;AddResult&amp;rdquo;
element contains the return value from the method. As above, ASP.NET will
generate an element for your return value by appending the string &amp;ldquo;Result&amp;rdquo; to
the name of the method. Of course, it only does this if the method returns a
value.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        So how does
the ASP.NET runtime know how to translate the request XML into a call to a
method? Before I answer that, I need to step back and look briefly at the XML
support in .NET.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;subhead1&quot;&gt;.NET and XML&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;The .NET framework loves XML. In fact, .NET loves XML so
much that there are two XML serialization engines. Of course these engines are
as different as night and day. The first I&amp;rsquo;ll discuss is the Runtime
Serialization engine. This is the engine that knows how to handle all of the
classes and structures that are adorned with the &lt;strong&gt;System.SerializableAttribute&lt;/strong&gt;
attribute. &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        The Runtime
Serialization engine makes use of what are called formatters. These formatters
take objects and format them into some type of persistent format. The .NET
Framework comes with two formatters out of the box. The first is a binary
formatter. The second is the SOAP formatter. The binary formatter uses a
proprietary binary format. The SOAP formatter uses the rules set up in SOAP 1.1
Section 5 for encoding objects and object graphs. So while the SOAP formatter
does output XML, it is in a compact grammar that fully supports cyclic
references, arrays, and other advanced features. The Runtime Serialization
engine also offers full object serialization. This means that private members
are serialized as well as public ones. So the element serialized on one side
will be completely deserialized on the other side complete with private data
members. Of course this causes some interesting issues with versioning, but
that is a topic for another day.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        The second
serialization engine is what I call the XML Schema Serialization Engine. It manages
the mapping from .NET types to XML Schema types and vice versa. It doesn&amp;rsquo;t know
what circular references are.  It doesn&amp;rsquo;t
really know that much about .NET types at all other than how to do primitive
mappings. The XML Schema Serialization Engine also doesn&amp;rsquo;t work on private
members. It will only work with public properties and public fields. This means
the public interface of the object is sent across the wire or saved to the
disk. This makes versioning a bit simpler because as long as the object doing
the deserialization understands the properties and fields, how they are stored
is irrelevant. And because all types sent over the wire are XML Schema types,
the receiving end has much greater choice in development tools.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        Before I get
into the details of XML Schema Serialization Engine, I want to demonstrate a
quick example that shows the major difference in the two engines. In Listing 1,
you&amp;rsquo;ll notice that the object &lt;strong&gt;c&lt;/strong&gt;
is serialized to two streams - one using the XML Schema Serialization Engine
and the other using the Runtime Serialization engine. But the more interesting
piece is that each element of the array &lt;strong&gt;Container.contained&lt;/strong&gt;
is set to the same reference &lt;strong&gt;cd&lt;/strong&gt;.
Listing 2 shows the abbreviated output from the XML Schema Serialization
engine. Listing 3 shows the abbreviated output from the Runtime Serialization
engine. Notice in Listing 2 that the string &amp;ldquo;I&amp;rsquo;m the same string&amp;rdquo; is repeated
for every element in the array. In Listing 3, each element in the array simply
references the real element later in the document.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt;Listing 1 &amp;ndash; Code that shows the major
difference in the two engines&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System.IO;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System.Runtime.Serialization;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System.Runtime.Serialization.Formatters.Soap;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System.Xml.Serialization;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[Serializable]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Contained {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public string
data;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[Serializable]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Container {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public Contained[]
contained;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;class Driver {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  static void Main()
{&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   Container c = new
Container();&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   c.contained = new
Contained[10];&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   Contained cd =
new Contained();&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   cd.data =
&amp;quot;I'm the same string&amp;quot;;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   for(int i = 0; i
&amp;lt; c.contained.Length; ++i) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;     c.contained[i]
= cd;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   }&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   using(Stream s =
File.OpenWrite(&amp;quot;c:tempxsse.xml&amp;quot;)) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;     XmlSerializer
xs = new XmlSerializer(typeof(Container));&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;     xs.Serialize(s,c);&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   }&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   using(Stream s =
File.OpenWrite(&amp;quot;c:temprs.xml&amp;quot;)) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;     SoapFormatter
sf = new SoapFormatter();&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;    
sf.Serialize(s,c);&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   }&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  }&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt;Listing 2 &amp;ndash; XML Schema Serialization
Engine output&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   I'm
the same string&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   I'm
the same string&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;    &amp;hellip;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt;Listing 3 &amp;ndash; Runtime Serialization
output using SoapFormatter&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;I'm the same
string&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;**sidebar**&lt;/p&gt;

&lt;p class=&quot;sidebarheadline&quot;&gt;Circular References&lt;/p&gt;

&lt;p class=&quot;sidebartext&quot;&gt;One of the most touted features of any virtual machine
system (Java, .NET, etc.) is their garbage collector.  With a garbage collector, you no longer need
to worry about memory.  Just allocate and
go.  The garbage collector will pick
stuff up when it is no longer reachable (i.e. no one has a variable referencing
the memory).  One of the best features of
garbage collection is breaking what are called circular references.  A circular reference is when you have two
objects pointing at each other.  Let&amp;rsquo;s
look at an example &amp;ndash; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;A a = new A();&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;B b = new B();&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;a.bRef = b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;b.aRef = a;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;a = null;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;b = null;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;sidebartext&quot;&gt;Here A and B point at each other.  I then null out the top-level reference.  But each block of memory for A and B still
has someone pointing at it, which just happens to be in this sample the
top-level reference that no longer have anyone pointing at them.  The garbage collector is smart enough to see
this and still collect them properly.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;The Runtime Serialization engine can handle this scenario
properly as well.  It will only serialize
the reference once.  The XML Schema
Serialization Engine will throw an InvalidOperationException because it
detected a circular reference.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;**end sidebar**&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;subhead1&quot;&gt;XML Schema Serialization Engine&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;As I stated before, the XML Schema Serialization Engine
translates .NET data types into XML Schema data types. .NET Arrays are
translated into sequences. The sequences will always have the following
cardinality rules:&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;&lt;!--[if !supportLists]--&gt;&amp;middot;        
&lt;!--[endif]--&gt;minimum occurrences (minOccurs) equal
to 0 &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;&lt;!--[if !supportLists]--&gt;&amp;middot;        
&lt;!--[endif]--&gt;maximum occurrences (maxOccurs) equal
to unbounded. &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        There is no
way to change these values in the current version.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        The best way
to understand the XML Schema Serialization Engine is by looking at examples.
The code in Listing 4 shows a simple classes named &lt;strong&gt;Person&lt;/strong&gt; and &lt;strong&gt;Address&lt;/strong&gt;. Included at the end of the listing
is a sample of what the XML Schema Serialization Engine would produce when used
to serialize an instance of the Person class. To keep things simple, I used
public fields. In production code you should use properties for better future
proofing of code.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt;Listing 4 &amp;ndash; Person and Address and
Serialization Example&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Address {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
Street;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
City;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
State;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
ZipCode;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Person {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
FirstName;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
LastName;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public Int32 Age;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public Address
HomeAddress;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;/*&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; Justin&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; Rudd&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 25&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  111
Any Street&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  Any
City&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  Any
State&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
00001&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;*/&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        The first
thing to notice about the XML is that each public field is an element. The
value of the field is the text between the element tags. Also the names of the
elements are the names of the fields.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        Let&amp;rsquo;s start
with the simplest customization first &amp;ndash; changing from using elements to using
attributes. To do this, you will need to use the XML Serialization Attributes.
These attributes are used on properties, fields, parameters, and return types
(the latter two will be important momentarily) to control the type of XML
generated. To make a field become an attribute instead of an element, you use
the &lt;strong&gt;System.Xml.Serialization.XmlAttributeAttribute&lt;/strong&gt;
attribute. Listing 5 shows some code that demonstrates this as well as some
example output. &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt;Listing 5 &amp;ndash; Using attributes to
produce XML attributes&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System.Xml.Serialization;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Address {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [XmlAttribute]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
Street;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [XmlAttribute]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
City;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [XmlAttribute]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
State;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [XmlAttribute]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
ZipCode;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Person {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [XmlAttribute]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
FirstName;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [XmlAttribute]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
LastName;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [XmlAttribute]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public Int32 Age;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public Address
HomeAddress;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;/*&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;*/&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;As with the element output in Listing 4, the name of each
XML Attribute is the name of the field. Passing a string into the &lt;strong&gt;XmlAttributeAttribute&lt;/strong&gt; constructor can
change the name of the field. This is also true for the &lt;strong&gt;XmlElementAttribute&lt;/strong&gt;. The following
snippets demonstrate this &amp;ndash; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlElement(&amp;quot;first-name&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
FirstName;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;or&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlAttribute(&amp;quot;first-name&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
FirstName;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        The &lt;strong&gt;XmlAttributeAttribute&lt;/strong&gt; attribute can
only be used on simple types. You cannot use it on complex types such as &lt;strong&gt;Address&lt;/strong&gt;.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        So far I&amp;rsquo;ve
shown you how to change the name of contained fields, but what about the
containing classes? For example, maybe we don&amp;rsquo;t want the &lt;strong&gt;Person&lt;/strong&gt; class to be output as &amp;ldquo;Person&amp;rdquo; but
as &amp;ldquo;carbon-lifeform&amp;rdquo;. You can do this by using the &lt;strong&gt;XmlRootAttribute&lt;/strong&gt; attribute. &lt;strong&gt;XmlRootAttribute&lt;/strong&gt; corresponds to global elements in
XML Schema. By global elements I mean the &lt;strong&gt;&lt;/strong&gt;
tag that is a direct child of the &lt;strong&gt;&lt;/strong&gt;
tag. &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        As you know,
every element in a schema has a type. It is either specified using the type
attribute specifying a name of a type or it is defined as an unnamed type. I
won&amp;rsquo;t go into the details of this because it is beyond the scope of this
article. But I will say that the XML Schema Serialization Engine produces code
as if the type attribute was used (i.e. named types). By default, the name of
the XML Schema type is the name of the class. Using the &lt;strong&gt;XmlTypeAttribute&lt;/strong&gt; attribute can change the name of the
XML Schema type.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        In addition
to changing the name of an element, you can also change its namespace. &lt;strong&gt;XmlElementAttribute&lt;/strong&gt;, &lt;strong&gt;XmlAttributeAttribute&lt;/strong&gt;, &lt;strong&gt;XmlRootAttribute&lt;/strong&gt;, and &lt;strong&gt;XmlTypeAttribute&lt;/strong&gt; all contain a property for changing
the namespace. You can also change the XML Schema data type. So if you have a
string field or property, but you want it to be a more constrained string type
(such as the XML Schema data type NCName) you would use the &lt;strong&gt;DataType&lt;/strong&gt; property of &lt;strong&gt;XmlElementAttribute&lt;/strong&gt; or &lt;strong&gt;XmlAttributeAttribute&lt;/strong&gt;.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        Wow.  We&amp;rsquo;ve covered a lot of information so
far.  I hope you&amp;rsquo;ve enjoyed it because
next month I am going to pick right back up with the XML Schema Serialization
Engine&amp;rsquo;s support for arrays and I&amp;rsquo;m going to go into detail about how ASP.NET
handles the XML you throw at it.  See you
next month!&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        Welcome
back!  As you remember from last month, I
was explaining how the XML Serialization attributes could be used to customize
XML.  I also talked a little about
ASP.NET XML Web Services.  Specifically
the XML they expect to receive and how they come up with the default XML
format.  In this article, I&amp;rsquo;m going to
finish up talking about the XML Serialization Attributes and dive into how
ASP.NET parses the incoming XML, calls your method, and writes the result as
XML back to the pipe.  Let&amp;rsquo;s get started!&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;subhead2&quot;&gt;Arrays&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;I&amp;rsquo;ve saved arrays for last because they contain the most
interesting aspects in my opinion. To best demonstrate this topic, I&amp;rsquo;ve
modified the Person class to be able to contain more than one address. The code
in Listing 6 shows the first attempt, using a normal array (as opposed to an
ArrayList).&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;listingcaption&quot;&gt;Listing 6 &amp;ndash; Person class with more
than one address&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System.Xml.Serialization;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public enum AddressType {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  Residential,&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  Business&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[XmlType(&amp;quot;address&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Address {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlAttribute(&amp;quot;type&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public AddressType
Type;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlElement(&amp;quot;street&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
Street;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlElement(&amp;quot;city&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
City;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlElement(&amp;quot;state&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
State;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlElement(&amp;quot;zip-code&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
ZipCode;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[XmlRoot(&amp;quot;person&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Person {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlElement(&amp;quot;first-name&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
FirstName;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlElement(&amp;quot;last-name&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public String
LastName;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlElement(&amp;quot;age&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public Int32 Age;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlArray(&amp;quot;addresses&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public Address[]
Addresses;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        In Listing 6
on the &lt;strong&gt;Addresses&lt;/strong&gt;
field, I&amp;rsquo;ve added the &lt;strong&gt;XmlArrayAttribute&lt;/strong&gt;
attribute. I did this to change the name of the container element to
&amp;ldquo;addresses&amp;rdquo; instead of the default &amp;ldquo;Addresses&amp;rdquo;. I also added the &lt;strong&gt;XmlTypeAttribute&lt;/strong&gt; attribute to the Address class
specify a name of &amp;ldquo;address&amp;rdquo; instead of the default &amp;ldquo;Address&amp;rdquo;. &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        When the XML
Schema Serialization Engine serializes the Addresses field, the following XML
is produced: &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;address /&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   111
Any Street&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   Any
City&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   Any
State&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  
00001&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;address /&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   111
Any Street&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   Any
City&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   Any
State&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  
00002&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;The element name &amp;ldquo;addresses&amp;rdquo; came from the &lt;strong&gt;XmlArrayAttribute&lt;/strong&gt;. The name of the children (&amp;ldquo;address&amp;rdquo;
in this example) came from the &lt;strong&gt;XmlTypeAttribute&lt;/strong&gt;.
If I had left off the &lt;strong&gt;XmlTypeAttribute&lt;/strong&gt;,
the name of the children would have been &amp;ldquo;Address&amp;rdquo; which is the name of the
class and also the default name of the XML Schema Complex Type. This same
functionality can be achieved by using the &lt;strong&gt;XmlArrayItemAttribute&lt;/strong&gt;
attribute. This comes in handy when you do not have access to the original code
of the type you want to serialize.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        Arrays can
also be collapsed. For example, in the above fragment of XML we have a
container element called &amp;ldquo;addresses&amp;rdquo;. This container element can be removed by
adorning the &lt;strong&gt;Addresses&lt;/strong&gt;
field with the &lt;strong&gt;XmlElementAttribute&lt;/strong&gt;
attribute. Now the &lt;strong&gt;Person&lt;/strong&gt;
class when serialized to XML will have multiple address elements without a
container element.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        So far I&amp;rsquo;ve
shown how to work with type safe arrays. Now I&amp;rsquo;m going to show you how to work
with &lt;strong&gt;ArrayList&lt;/strong&gt;s.
The attributes &lt;strong&gt;XmlArrayAttribute&lt;/strong&gt;
and &lt;strong&gt;XmlArrayItemAttribute&lt;/strong&gt;
also work on &lt;strong&gt;ArrayList&lt;/strong&gt;s.
But there are a couple of rules that must be followed. When you use the &lt;strong&gt;XmlAttrayItemAttribute&lt;/strong&gt; on a field of
type &lt;strong&gt;ArrayList&lt;/strong&gt;,
you must specify the type of element contained in the &lt;strong&gt;ArrayList&lt;/strong&gt;. This is done like so :&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlArray(&amp;quot;addresses&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
[XmlArrayItem(&amp;quot;address&amp;quot;,typeof(Address))]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public ArrayList
Addresses;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;If you do not specify the type in &lt;strong&gt;XmlArrayItemAttribute&lt;/strong&gt;, you must
specify the type in an array that is passed to &lt;strong&gt;XmlSerializer&lt;/strong&gt; upon construction. This would be
done like so:&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  XmlSerializer xs =
new XmlSerializer(typeof(Person),&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;new Type[]{ typeof(Address) });&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;If you do not use the &lt;strong&gt;XmlArrayItemAttribute&lt;/strong&gt;
to specify the type of the extra types in the constructor, when serializing an
instance of &lt;strong&gt;Person&lt;/strong&gt;,
an exception will be thrown stating that an unexpected type was seen.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        While this is
not by any means an exhaustive discussion of the XML Schema Serialization
Engine, it is more than enough for you to understand the rest of the article.
Also available online is a ZIP file that contains nine samples of what I have
been discussing. A few of the samples have been used here, but there are also
different variations in the sample code. I also show multiple ways to do the
same thing. &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        One last bit
of information for you. If you are interested in learning in more detail about how
the XML Serialization attributes affect the actual generation of XML Schema, I
suggest you build a couple of assemblies and run them through the XSD.exe tool
that ships with the .NET Framework SDK. It will actually generate an XML Schema
from the assembly.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;subhead1&quot;&gt;Back to ASP.NET&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;Armed with the knowledge of how the XML Serialization
attributes can be used to customize the outputted XML from objects, I&amp;rsquo;m ready
ready to discuss how to modify XML in ASP.NET. I&amp;rsquo;ll start with the simplest way
to customize the XML and move into more interesting ways.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        To refresh
your memory, here is the ASMX page that I&amp;rsquo;m working with:&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&amp;lt;%@ WebService language=&amp;quot;C#&amp;quot;
class=&amp;quot;Calculator&amp;quot; %&amp;gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;using System.Web.Services;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Calculator {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [WebMethod]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double
Add(double a, double b) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   return a + b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  }&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;Here is the XML that can be processed by the ASMX page &amp;ndash; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   &lt;a&gt;10&lt;/a&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  
&lt;strong&gt;20&lt;/strong&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;And here is the response from the ASMX page &amp;ndash; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  
30&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;So the question is how does the ASP.NET runtime take the
former XML and execute a method?&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;subhead2&quot;&gt;Request Process&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;When an ASMX file is requested, ASP.NET will check to see
if the page has already been compiled. If it hasn&amp;rsquo;t, then ASP.NET will parse
the file looking for the page directive. The page directive will tell ASP.NET
what language the service is. Barring compilation errors, ASP.NET will load the
type specified by the &amp;ldquo;class&amp;rdquo; attribute of the page directive. Before I go any
further, I must say that the following description of what happens is based on
what I&amp;rsquo;ve seen. I have not seen the source code or disassembled the web service
code to verify this is how it works. But I believe it is very close to what
really happens.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        At this
point, all the public methods adorned with the WebMethodAttribute attribute are
parsed into types. These are public types that will be adorned with XML
Serialization Attributes. The use of attributes will make sure the types can be
used to match the incoming XML. For our &lt;strong&gt;Calculator.Add&lt;/strong&gt;
method above, the incoming type might look like this &amp;ndash; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[XmlRoot(&amp;quot;Add&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class ns000001 {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double a;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        The return
value is generated the same way. Again for the Calculator.Add method, the
outgoing type might look like this &amp;ndash; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[XmlRoot(&amp;quot;AddResponse&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class ns000002 {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double
AddResult;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        So when
ASP.NET receives an HTTP POST, it will use the SOAPAction to determine which
method the request should be dispatched to. From the method, it will look up
the incoming type and deserialize the message into it. It will then use
reflection to call the method passing in the parameters (&amp;ldquo;a&amp;rdquo; and &amp;ldquo;b&amp;rdquo; in our
example). Then return value is then placed into the outgoing type. The outgoing
type is then serialized into XML and written to the socket. Pretty simple,
isn&amp;rsquo;t it? Of course, I&amp;rsquo;m glossing over a few details of how the ASP.NET ASMX
engine works. But for the purpose of this article, it is enough.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        &lt;/p&gt;

&lt;p class=&quot;subhead2&quot;&gt;XML Details&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;You&amp;rsquo;ve probably noticed from the documentation page that
ASP.NET generates for you that the Add element is actually in the namespace
&amp;ldquo;http://tempuri.org/&amp;rdquo;. This is the default namespace assigned to a web service.
You can change this namespace by using the &lt;strong&gt;WebServiceAttribute&lt;/strong&gt;
attribute. By default, all types in the web service use this namespace.&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        You can
assign a namespace on a per method basis as well. This is done using the &lt;strong&gt;SoapDocumentMethodAttribute&lt;/strong&gt;
attribute. Using this attribute, you can change the namespace of the request
and the response. The following shows their use:&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[WebMethod]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[SoapDocumentMethod(&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
RequestNamespace=&amp;quot;urn:math-request&amp;quot;,&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
ResponseNamespace=&amp;quot;urn:math-response&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public double Add(double a, double b) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  return a + b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        After adding
this attribute, the types generated for request and response will be as follows
(respectively):&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[XmlRoot(&amp;quot;Add&amp;quot;,Namespace=&amp;rdquo;urn:math-request&amp;rdquo;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class ns000001 {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double a;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[XmlRoot(&amp;quot;AddResponse&amp;quot;,Namespace=&amp;rdquo;urn:math-response&amp;rdquo;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class ns000002 {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double
AddResult;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        You may also
change the request element name and response element name with this attribute.
The following shows this:&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[WebMethod]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[SoapDocumentMethod(&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  RequestElementName=&amp;quot;Summit&amp;quot;,&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; 
ResponseElementName=&amp;quot;Summation&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public double Add(double a, double b) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  return a + b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        After
changing the attribute, the types generated for request and response will be as
follows (respectively):&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[XmlRoot(&amp;quot;Summit&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class ns000001 {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double a;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[XmlRoot(&amp;quot;Summation&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class ns000002 {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double
AddResult;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        The above are
the easiest changes to make. But they only allow you to change the namespace
and wrapper elements. What if you don&amp;rsquo;t want to call the child element of
&amp;ldquo;AddResponse&amp;rdquo; &amp;ldquo;AddResult&amp;rdquo;? What if you want to call it &amp;ldquo;Sum&amp;rdquo;? You can
accomplish this by using the XmlElementAttribute prefixed with the word
&amp;ldquo;return&amp;rdquo;. This works the same way as an assembly level attribute, but you are
telling the compiler to apply the attribute to the return value of a method
(this is why XmlElementAttribute is allowed on return types). Here is an
example &amp;ndash; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[WebMethod]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[return:XmlElement(&amp;quot;Sum&amp;quot;)]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public double Add(double a, double b) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  return a + b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        I won&amp;rsquo;t show
the response type generated here because it simply changes the name of the
double from &amp;ldquo;AddResult&amp;rdquo; to &amp;ldquo;Sum&amp;rdquo;. At least that is one possible way. I&amp;rsquo;ll leave
it as an exercise to the reader to determine the other way (hint: I did it
above in the &lt;strong&gt;Person&lt;/strong&gt;
class examples).&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        In addition
to changing the name of the return value you can also change the name of the
parameter using the XmlElementAttribute. This is really less useful for
primitive types because all you need to do is change the name of the parameter,
and the name in the XML is changed. Where it comes in handy is when you are
accepting complex types as parameters. For example, take the following code:&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class ToAdd {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double a;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public class Calculator {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  [WebMethod]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  public double
Add2(ToAdd ta) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;    return return
ta.a + ta.b;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  }&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;}&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        By default,
the XML that the Calculator.Add2 method will accept looks like this:&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   
&lt;a&gt;double&lt;/a&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   
&lt;strong&gt;double&lt;/strong&gt;&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;   &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;&lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt;        Not exactly
human readable. You would like it to say &amp;ldquo;ToAdd&amp;rdquo;. Now you can change the name
of the parameter to &amp;ldquo;ToAdd&amp;rdquo;. And it will work properly. Here is the modified
method: &lt;/p&gt;

&lt;p class=&quot;bodytext&quot;&gt; &lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;[WebMethod]&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;public double Add2(ToAdd ToAdd) {&lt;/p&gt;

&lt;p class=&quot;code&quot;&gt;  return ToAdd.a +
ToAdd.b;&lt;/p&gt;

&lt;p class=&quo