Справочник по схемам XML
Файл схемы XML для файла XML результатов состоит из различных элементов, управляющих структурой и проверкой файла XML результатов.
Синтаксис
<!-- определить общую схему xml -->
<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>
<!-- конец определения общей схемы xml -->
Первичные элементы
- PRSInfo
- Этот элемент управляет подробностями о версии Prerequisite Scanner.
- MachineInfo
- Этот элемент управляет информацией о среде назначения, в которой запускается просмотр.
- UserInfo
- Этот элемент управляет информацией о зарегистрированном пользователе, выполняющем просмотр.
- ScenarioInfo
- Этот элемент управляет информацией о типе просмотра и сценария.
- ProductInfo
- Этот элемент управляет информацией о продукте или компоненте и его файле конфигурации.
- DetailedResults
- Этот элемент управляет результатами просмотра для каждого набора обязательных свойств для продукта или компонента, которые сгруппированы элементом DetailedProductResultsElement.
- AggregatedResults
- Этот элемент управляет объединенными результатами просмотра для дискового пространства и памяти.
- ResultSummary
- Этот элемент управляет общим результатом просмотра PASS, WARNING или FAIL. Он управляет также общим результатом просмотра PASS, WARNING или FAIL для каждого просматриваемого продукта или компонента.
- предупреждения
- Этот элемент управляет любыми сообщениями с предупреждениями, вносимыми в журнал при просмотре, как задано одним или несколькими элементами Message.
PRSInfo
Этот обязательный элемент определяет структуру подробностей о версии Prerequisite Scanner, включающей в себя имя инструмента, версию, номер сборки, выходной каталог и имя файла XML результатов.
<!-- Определения простых элементов информации о Prerequisite Scanner -->
<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 -->
<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>номер_версии</PRSVersion>
<PRSBuild>номер_сборки</PRSBuild>
<PRSOutputDir>выходной_каталог</PRSOutputDir>
<PRSResultXmlFile>result.xml</PRSResultXmlFile>
</PRSInfo>
MachineInfo
Этот необязательный элемент определяет структуру подробностей информации о компьютере, включающей в себя систему назначения, ее серийный номер, серийный номер и версию ОС.
<!-- Определения простых элементов информации о компьютере -->
<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" />
<!-- Определения сложных элементов информации о компьютере -->
<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>имя_компьютера</MachineName>
<MachineSerialNumber>серийный_номер</MachineSerialNumber>
<MachineOSSerial>серийный_номер_ОС</MachineOSSerial>
<MachineOSName>версия_ОС</MachineOSName>
</MachineInfo>
UserInfo
Этот необязательный элемент определяет структуру подробностей информации о пользователе, такой как имя зарегистрированного пользователя.
<!-- Определение простого элемента информации о пользователе -->
<xs:element name="UserName" type="xs:string"/>
<!-- Определение сложного элемента информации о пользователе -->
<xs:element name="UserInfo">
<xs:complexType>
<xs:sequence>
<xs:element ref="UserName" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Пример вывода в файл XML результатов:
<UserInfo>
<UserName>имя_зарегистрированного_пользователя</UserName>
</UserInfo>
ScenarioInfo
Этот обязательный элемент определяет тип просмотра, который указывается перечислением.
<!-- Поддерживаемые типы сценариев для просмотра обязательных свойств -->
<xs:simpleType name="scenarioType">
<xs:restriction base="xs:string">
<xs:enumeration value="Prerequisite Scan"/>
</xs:restriction>
</xs:simpleType>
!-- Определение простого элемента информации сценария -->
<xs:element name="ScenarioInfo" type="scenarioType" />
Пример вывода в файл XML результатов:
<ScenarioInfo>Prerequisite Scan</ScenarioInfo>
ProductInfo
Этот обязательный элемент определяет структуру информации о просматриваемом продукте. В сценарий Prerequisite Scanner можно передать один или несколько кодов продуктов. Элемент ProductInfo содержит по крайней мере один дочерний элемент Product, причем каждый дочерний элемент представляет продукт или компонент. Информация для каждого продукта включает в себя код продукта, имя продукта и версию продукта. Имя продукта - это значение для кода продукта в файле codename.cfg, а версия - это восьмизначное значение, заданное в имени связанного файла конфигурации.
<!-- Определение простого элемента продукта -->
<xs:element name="ProductCode" type="xs:string" />
<xs:element name="ProductName" type="xs:string" />
<xs:element name="ProductVersion" type="xs:string" />
<!-- Определение сложного элемента продукта, требуемое для каждого просматриваемого продукта -->
<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>
<!-- Определение сложного элемента информации о продукте>
<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 содержит имя свойства, результат проверки, фактическое значение и ожидаемое значение.
<!-- Поддерживаемые типы результатов -->
<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>
<!-- Определения простых элементов результатов -->
<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" />
<! -- Определение сложного элемента результатов для индивидуального свойства -->
<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>
<! -- Определение сложного элемента результатов для просматриваемого продукта -->
<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>
<! --Определение сложного элемента подробных результатов -->
<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 содержит имя свойства, результат проверки, фактическое значение и ожидаемое значение.
<! --Определение сложного элемента общего результата -->
<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
Этот обязательный элемент определяет общий результат просмотра, который указывается перечислением. Он определяет также общий результат для каждого просматриваемого продукта и компонента.
<!-- Поддерживаемые типы результатов -->
<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>
<!-- Определение простого элемента общего результата -->
<xs:element name="OverallResult" type="resultType" />
<!-- Определение сложного элемента сводного результата -->
<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.
<!-- Определение простого элемента сообщения-->
<xs:element name="Message" type="xs:string" />
<!-- Определение сложного элемента сообщений-->
<xs:element name="Warnings">
<xs:complexType>
<xs:sequence>
<xs:element ref="Message" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>