مرجع XML schema
ملف XML schema لنتائج XML يقوم بمقارنة عناصر الاختلاف التي تقوم بادارة الهيكل والتحقق من ملف XML للنتائج.
الصيغة
<!-- define overall xml schema -->
<xs:element name="Results">
<xs:complexType>
<xs:sequence>
<xs:element ref="PRSInfo" minOccurs="1"/>
<xs:element ref="MachineInfo" minOccurs="0"/>
<xs:element ref="UserInfo" minOccurs="0"/>
<xs:element ref="ScenarioInfo" minOccurs="1"/>
<xs:element ref="ProductInfo" minOccurs="1"/>
<xs:element ref="DetailedResults" minOccurs="1"/>
<xs:element ref="AggregatedResults" minOccurs="0"/>
<xs:element ref="ResultSummary" minOccurs="1"/>
<xs:element ref="Warnings" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="schemaVersion" type="xs:decimal" use="required" fixed="1.3"/>
</xs:complexType>
</xs:element>
<!-- end of overall xml schema definition -->
العناصر الأساسية
- PRSInfo
- هذا العنصر يقوم بادارة تفاصيل النسخة Prerequisite Scanner .
- MachineInfo
- ويقوم هذا العنصر بادارة المعلومات الخاصة ببيئة التشغيل المستهدفة التي يتم تشغيل عملية المسح عليها.
- UserInfo
- يقوم هذا العنصر بادارة المعلومات الخاصة بالمستخدم الذي قام بتسجيل الدخول والذي يقوم بتشغيل عملية المسح.
- ScenarioInfo
- يقوم هذا العنصر بادارة المعلومات الخاصة بنوع عملية المسح والسيناريو.
- ProductInfo
- يقوم هذا العنصر بادارة المعلومات الخاصة بالبرنامج والمكون وملف التوصيف الخاص به.
- DetailedResults
- يقوم هذا العنصر بادارة نتائج المسح لكل فئة من خصائص المتطلبات لمنتج أو مكون تم تجميعه بواسطة العنصر DetailedProductResultsElement.
- AggregatedResults
- يقوم هذا العنصر بادارة نتائج المسح المجمعة لمساحة القرص والذاكرة.
- ResultSummary
- يقوم هذا العنصر بادارة نتائج PASS، WARNING، FAIL الاجمالية لعملية المسح. كما يقوم أيضا بادارة نتائج PASS، WARNING، FAIL الاجمالية لكل منتج ومكون تم مسحه.
- التحذيرات
- يقوم هذا العنصر بادارة أي رسائل تحذير تم تسجيلها أثناء عملية المسح، كما هو محدد بواسطة عنصر أو أكثر من عناصر Message.
PRSInfo
يقوم هذا العنصر المطلوب بتعريف الهيكل لتفاصيل نسخة Prerequisite Scanner، متضمنا اسم الأداة والنسخة ورقم البناء ودليل المخرجات واسم ملف XML للنتائج.
<!-- Prerequisite Scanner informaton simple element definitions -->
<xs:element name="PRSName" type="xs:string" />
<xs:element name="PRSVersion" type="xs:string" />
<xs:element name="PRSBuild" type="xs:string" />
<xs:element name="PRSOutputDir" type="xs:string" />
<xs:element name="PRSResultXmlFile" type="xs:string" />
<!-- Prerequisite Scanner informaton complex element definition -->
<xs:element name="PRSInfo">
<xs:complexType>
<xs:sequence>
<xs:element ref="PRSName" />
<xs:element ref="PRSVersion" />
<xs:element ref="PRSBuild" />
<xs:element ref="PRSOutputDir" />
<xs:element ref="PRSResultXmlFile" />
</xs:sequence>
</xs:complexType>
</xs:element>
مثال للمخرجات بملف XML للنتائج سيكون كما يلي:
<PRSInfo>
<PRSName>IBM Prerequisite Scanner</PRSName>
<PRSVersion>version_number</PRSVersion>
<PRSBuild>build_number</PRSBuild>
<PRSOutputDir>output_directory</PRSOutputDir>
<PRSResultXmlFile>result.xml</PRSResultXmlFile>
</PRSInfo>
MachineInfo
يقوم هذا العنصر الاختياري بتعريف الهيكل لتفاصيل معلومات الجهاز، متضمنا النظام المستهدف والرقم المسلسل الخاص به والنسخة والرقم المسلسل لنظام التشغيل.
<!-- Machine information simple element definitions -->
<xs:element name="MachineName" type="xs:string" />
<xs:element name="MachineSerialNumber" type="xs:string" />
<xs:element name="MachineOSSerial" type="xs:string" />
<xs:element name="MachineOSName" type="xs:string" />
<!-- Machine informaton complex element definition -->
<xs:element name="MachineInfo">
<xs:complexType>
<xs:sequence>
<xs:element ref="MachineName" minOccurs="0"/>
<xs:element ref="MachineSerialNumber" minOccurs="0"/>
<xs:element ref="MachineOSSerial" minOccurs="0"/>
<xs:element ref="MachineOSName" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
مثال للمخرجات بملف XML للنتائج سيكون كما يلي:
<MachineInfo>
<MachineName>computer_name</MachineName>
<MachineSerialNumber>serial_number</MachineSerialNumber>
<MachineOSSerial>OS_serial_number</MachineOSSerial>
<MachineOSName>OS_version</MachineOSName>
</MachineInfo>
UserInfo
يقوم هذا العنصر الاختياري بتعريف الهيكل لتفاصيل معلومات المستخدم، وهو اسم المستخدم للمستخدم الذي قام ببدء الاتصال.
<!-- User information simple element definition -->
<xs:element name="UserName" type="xs:string"/>
<!-- User informaton complex element definition -->
<xs:element name="UserInfo">
<xs:complexType>
<xs:sequence>
<xs:element ref="UserName" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
مثال للمخرجات بملف XML للنتائج سيكون كما يلي:
<UserInfo>
<UserName>logged_in_user_name</UserName>
</UserInfo>
ScenarioInfo
يقوم هذا العنصر المطلوب بتعريف نوع عملية المسح، التي تم تعريفها كتعداد.
<!-- Supported scenario types for Prerequisite scans -->
<xs:simpleType name="scenarioType">
<xs:restriction base="xs:string">
<xs:enumeration value="Prerequisite Scan"/>
</xs:restriction>
</xs:simpleType>
!-- Scenario info simple element definition -->
<xs:element name="ScenarioInfo" type="scenarioType" />
مثال للمخرجات بملف XML للنتائج سيكون كما يلي:
<ScenarioInfo>Prerequisite Scan</ScenarioInfo>
ProductInfo
يقوم هذا العنصر المطلوب بتعريف الهيكل لمعلومات المنتجات التي تم مسحها. يمكن امرار واحد أو أكثر من أكواد المنتجات للبرنامج النصي Prerequisite Scanner. يحتوي العنصر ProductInfo على عنصر فرعي Product واحد على الأقل، مع كل عنصر فرعي يمثل منتج أو مكون. تتضمن المعلومات لكل منتج كود المنتج واسم المنتج ونسخة المنتج. اسم المنتج هو القيمة لكود المنتج في الملف codename.cfg، والنسخة هي القيمة المكونة من 8-أرقام والتي يتم تحديدها في اسم ملف التوصيف المصاحب.
<!-- Product simple element definition -->
<xs:element name="ProductCode" type="xs:string" />
<xs:element name="ProductName" type="xs:string" />
<xs:element name="ProductVersion" type="xs:string" />
<!-- Product complex element definition, required for each scanned product -->
<xs:element name="ProductElement">
<xs:complexType>
<xs:sequence>
<xs:element ref="ProductCode" />
<xs:element ref="ProductName" />
<xs:element ref="ProductVersion" />
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Product information complex element definition>
<xs:element name="ProductInfo">
<xs:complexType>
<xs:sequence>
<xs:element ref="ProductElement" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
مثال للمخرجات في ملف XML للنتائج، لعمليات مسح المنتج المتعددة، كما يلي:
<ProductInfo>
<ProductElement>
<ProductCode>DMO</ProductCode>
<ProductName>Prerequisite Scanner Demo</ProductName>
<ProductVersion>01000000</ProductVersion>
</ProductElement>
<ProductElement>
<ProductCode>TCR</ProductCode>
<ProductName>Tivoli Common Reporting</ProductName>
<ProductVersion>02010100</ProductVersion>
</ProductElement>
</ProductInfo>
DetailedResults
يقوم هذا العنصر المطلوب بتعريف الهيكل لمعلومات النتائج التفصيلية لكل المنتجات التي تم مسحها. يحتوي العنصر DetailedResults على عنصر فرعي DetailedProductResultsElement واحد على الأقل، مع كل عنصر فرعي يمثل النتائج التفصيلية لمنتج تم مسحه. يحتوي كل عنصر فرعي على كود المنتج لكي يمثل المنتج الذي تم مسحه، وعنصر فرعي ResultElement واحد على الأقل. يتضمن ResultElement اسم الخاصية، ونتيجة التحقق، والقيمة الفعلية، والقيمة المتوقعة.
<!-- Supported result types -->
<xs:simpleType name="resultType">
<xs:restriction base="xs:string">
<xs:enumeration value="PASS"/>
<xs:enumeration value="FAIL"/>
<xs:enumeration value="WARN"/>
<xs:enumeration value="WARNING"/>
</xs:restriction>
</xs:simpleType>
<!-- Results simple element definitions -->
<xs:element name="PropertyName" type="xs:string" />
<xs:element name="Result" type="resultType" />
<xs:element name="Found" type="xs:string" />
<xs:element name="Expected" type="xs:string" />
<xs:element name="OverallResult" type="resultType" />
<! -- Individual property results complex element definition -->
<xs:element name="ResultElement">
<xs:complexType>
<xs:sequence>
<xs:element ref="PropertyName" />
<xs:element ref="Result" />
<xs:element ref="Found" />
<xs:element ref="Expected" />
</xs:sequence>
<! -- Scanned product results complex element definition -->
<xs:element name="DetailedProductResultsElement">
<xs:complexType>
<xs:sequence>
<xs:element ref="ProductCode" />
<xs:element ref="ResultElement" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:complexType>
</xs:element>
<! --Detailed results complex element definition -->
<xs:element name="DetailedResults">
<xs:complexType>
<xs:sequence>
<xs:element ref="DetailedProductResultsElement" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
مثال للمخرجات بملف النتائج XML، مع النتائج المفصلة للبرامج المتعددة التي يتم فحصها، كما يلي:
<DetailedResults>
<DetailedProductResultsElement>
<ProductCode>DMO</ProductCode>
<ResultElement>
<PropertyName>OS Version</PropertyName>
<Result>FAIL</Result>
<Found>Microsoft Windows XP Professional Service Pack 3</Found>
<Expected>Windows 7 Ultimate</Expected>
</ResultElement>
<ResultElement>
<PropertyName>Memory</PropertyName>
<Result>PASS</Result>
<Found>1701MB</Found>
<Expected>128MB</Expected>
</ResultElement>
</DetailedProductResultsElement>
<DetailedProductResultsElement>
<ProductCode>TCR</ProductCode>
<ResultElement>
<PropertyName>os.totalPhysicalMemory</PropertyName>
<Result>PASS</Result>
<Found>3.00GB</Found>
<Expected>2GB</Expected>
</ResultElement>
<ResultElement>
<PropertyName>intel.cpu</PropertyName>
<Result>PASS</Result>
<Found>2.34GHz</Found>
<Expected>2GHz</Expected>
</ResultElement>
</DetailedProductResultsElement>
</DetailedResults>
AggregatedResults
يقوم هذا العنصر الاختياري بتعريف الهيكل لمعلومات النتائج المجمعة لكل المنتجات التي تم مسحها. ويحتوي على عنصر فرعي ResultElement واحد على الأقل، مع كل عنصر فرعي يمثل النتائج المجمعة للخصائص العامة، مثل مساحة القرص والذاكرة، اذا كانت هذه الخصائص موجودة في ملفات التوصيف. يتضمن ResultElement اسم الخاصية، ونتيجة التحقق، والقيمة الفعلية، والقيمة المتوقعة.
<! --Aggregated complex element definition -->
<xs:element name="AggregatedResults">
<xs:complexType>
<xs:sequence>
<xs:element ref="ResultElement" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
مثال للمخرجات بملف XML للنتائج سيكون كما يلي:
<AggregatedResults>
<ResultElement>
<PropertyName>Memory</PropertyName>
<Result>PASS</Result>
<Found>1.66GB</Found>
<Expected>128MB</Expected>
</ResultElement>
<ResultElement>
<PropertyName>C:</PropertyName>
<Result>FAIL</Result>
<Found>1.32GB</Found>
<Expected>4.18GB</Expected>
</ResultElement>
</AggregatedResults>
ResultSummary
يقوم هذا العنصر المطلوب بتعريف النتيجة الاجمالية لعملية المسح، التي تم تعريفها كتعداد. كما يقوم أيضا بتعريف النتيجة الاجمالية لكل منتج أو مكون تم مسحه.
<!-- Supported result types -->
<xs:simpleType name="resultType">
<xs:restriction base="xs:string">
<xs:enumeration value="PASS"/>
<xs:enumeration value="FAIL"/>
<xs:enumeration value="WARNING"/>
</xs:restriction>
</xs:simpleType>
<!-- Overall result simple element definition -->
<xs:element name="OverallResult" type="resultType" />
ERROR! SEGMENT DATA CORRUPTED, SEGDATA=<xs:element name="ResultSummay">
<xs:complexType>
<xs:sequence>
<xs:element ref="OverallResult" minOccurs="1" maxOccurs="1" />
<xs:element ref="ProductResult" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
مثال للمخرجات بملف XML للنتائج سيكون كما يلي:
<ResultSummary>
<OverallResult>FAIL</OverallResult>
<ProductResult>
<ProductCode>DMO</ProductCode>
<Result>FAIL</Result>
</ProductResult>
<ProductResult>
<ProductCode>TCR</ProductCode>
<Result>FAIL</Result>
</ProductResult>
</ResultSummary>
التحذيرات
يقوم هذا العنصر الاختياري بتعريف الهيكل لأي رسائل تحذير. ويحتوي على عنصر فرعي Message واحد على الأقل.
<!-- Message simple element definition-->
<xs:element name="Message" type="xs:string" />
<!-- Warnings complex element definition-->
<xs:element name="Warnings">
<xs:complexType>
<xs:sequence>
<xs:element ref="Message" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>