Update Redfish schemas to 2019.2

Note, the DMTF changed the format of the schema file pack yet again, so
the script changes now to compensate for that.

Tested:
Ran schema validator.  One unrelated failure in LogEntry, and 4 new
warnings in PCIe devices (we're using a deprecated property).  All other
endpoints pass.

Signed-off-by: Ed Tanous <ed.tanous@intel.com>
Change-Id: I81c030a7c5a6a32cc12a5e7e02a9441b7891bc5d
diff --git a/static/redfish/v1/schema/PCIeFunction_v1.xml b/static/redfish/v1/schema/PCIeFunction_v1.xml
index 4b2ac19..34d02e8 100644
--- a/static/redfish/v1/schema/PCIeFunction_v1.xml
+++ b/static/redfish/v1/schema/PCIeFunction_v1.xml
@@ -1,350 +1,383 @@
-<?xml version="1.0" encoding="UTF-8"?>

-<!---->

-<!--################################################################################       -->

-<!--# Redfish Schema:  PCIeFunction  v1.2.1-->

-<!--#                                                                                      -->

-<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->

-<!--# available at http://www.dmtf.org/standards/redfish                                   -->

-<!--# Copyright 2014-2018 DMTF.                                                            -->

-<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->

-<!--################################################################################       -->

-<!---->

-<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">

-

-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">

-    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>

-  </edmx:Reference>

-  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">

-    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>

-  </edmx:Reference>

-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">

-    <edmx:Include Namespace="Validation.v1_0_0" Alias="Validation"/>

-  </edmx:Reference>

-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">

-    <edmx:Include Namespace="Resource"/>

-    <edmx:Include Namespace="Resource.v1_0_0"/>

-  </edmx:Reference>

-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">

-    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>

-  </edmx:Reference>

-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/EthernetInterface_v1.xml">

-    <edmx:Include Namespace="EthernetInterface"/>

-  </edmx:Reference>

-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/PCIeDevice_v1.xml">

-    <edmx:Include Namespace="PCIeDevice"/>

-  </edmx:Reference>

-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Drive_v1.xml">

-    <edmx:Include Namespace="Drive"/>

-  </edmx:Reference>

-  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Storage_v1.xml">

-    <edmx:Include Namespace="Storage"/>

-  </edmx:Reference>

-    <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction_v1.xml">

-    <edmx:Include Namespace="NetworkDeviceFunction"/>

-  </edmx:Reference>

-

-  <edmx:DataServices>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-

-      <EntityType Name="PCIeFunction" BaseType="Resource.v1_0_0.Resource" Abstract="true">

-        <Annotation Term="OData.Description" String="This is the schema definition for the PCIeFunction resource.  It represents the properties of a PCIeFunction attached to a System."/>

-        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent a PCIeFunction attached to a System."/>

-        <Annotation Term="OData.AdditionalProperties" Bool="false"/>

-        <Annotation Term="Capabilities.InsertRestrictions">

-          <Record>

-            <PropertyValue Property="Insertable" Bool="false"/>

-          </Record>

-        </Annotation>

-        <Annotation Term="Capabilities.UpdateRestrictions">

-          <Record>

-            <PropertyValue Property="Updatable" Bool="false"/>

-          </Record>

-        </Annotation>

-        <Annotation Term="Capabilities.DeleteRestrictions">

-          <Record>

-            <PropertyValue Property="Deletable" Bool="false"/>

-          </Record>

-        </Annotation>

-        <Annotation Term="Redfish.Uris">

-          <Collection>

-            <String>/redfish/v1/Chassis/{ChassisId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions/{PCIeFunctionId}</String>

-            <String>/redfish/v1/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions/{PCIeFunctionId}</String>

-          </Collection>

-        </Annotation>

-      </EntityType>

-

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_0">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="Redfish.Release" String="2016.2"/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.PCIeFunction">

-        <Annotation Term="OData.Description" String="This is the schema definition for the PCIeFunction resource.  It represents the properties of a PCIeFunction attached to a System."/>

-        <Annotation Term="OData.LongDescription" String="This resource shall be used to represent a PCIeFunction attached to a System."/>

-        <Annotation Term="OData.AdditionalProperties" Bool="false"/>

-

-        <Property Name="FunctionId" Type="Edm.Int64">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The the PCIe Function identifier."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall the PCIe device function number within a given PCIe device."/>

-        </Property>

-        <Property Name="FunctionType" Type="PCIeFunction.v1_0_0.FunctionType" Nullable="false">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The type of the PCIe Function."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the function type of the PCIe device function such as Physical or Virtual."/>

-        </Property>

-        <Property Name="DeviceClass" Type="PCIeFunction.v1_0_0.DeviceClass" Nullable="false">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The class for this PCIe Function."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the device class of the PCIe device function such as Storage, Network, Memory etc."/>

-        </Property>

-        <Property Name="DeviceId" Type="Edm.String">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The Device ID of this PCIe function."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the PCI Device ID of the PCIe device function."/>

-          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){2}$"/>

-        </Property>

-        <Property Name="VendorId" Type="Edm.String">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The Vendor ID of this PCIe function."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the PCI Vendor ID of the PCIe device function."/>

-          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){2}$"/>

-        </Property>

-        <Property Name="ClassCode" Type="Edm.String">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The Class Code of this PCIe function."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the PCI Class Code of the PCIe device function."/>

-          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){3}$"/>

-        </Property>

-        <Property Name="RevisionId" Type="Edm.String">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The Revision ID of this PCIe function."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the PCI Revision ID of the PCIe device function."/>

-          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){1}$"/>

-        </Property>

-        <Property Name="SubsystemId" Type="Edm.String">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The Subsystem ID of this PCIe function."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the PCI Subsystem ID of the PCIe device function."/>

-          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){2}$"/>

-        </Property>

-        <Property Name="SubsystemVendorId" Type="Edm.String">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="The Subsystem Vendor ID of this PCIe function."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be the PCI Subsystem Vendor ID of the PCIe device function."/>

-          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){2}$"/>

-        </Property>

-

-        <Property Name="Status" Type="Resource.Status" Nullable="false">

-          <Annotation Term="OData.Description" String="This property describes the status and health of the resource and its children."/>

-          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the resource."/>

-        </Property>

-

-        <Property Name="Links" Type="PCIeFunction.v1_0_0.Links" Nullable="false">

-          <Annotation Term="OData.Description" String="The links object contains the links to other resources that are related to this resource."/>

-          <Annotation Term="OData.LongDescription" String="The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."/>

-        </Property>

-      </EntityType>

-

-      <ComplexType Name="Links" BaseType="Resource.Links">

-        <Annotation Term="OData.Description" String="Contains references to other resources that are related to this resource."/>

-        <Annotation Term="OData.LongDescription" String="This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."/>

-        <NavigationProperty Name="EthernetInterfaces" Type="Collection(EthernetInterface.EthernetInterface)">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="An array of references to the ethernet interfaces which the PCIe device produces."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall reference a resource of type EthernetInterface that represents the network interfaces associated with this resource."/>

-          <Annotation Term="OData.AutoExpandReferences"/>

-        </NavigationProperty>

-        <NavigationProperty Name="Drives" Type="Collection(Drive.Drive)">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="An array of references to the drives which the PCIe device produces."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall reference a resource of type Drive that represents the storage drives associated with this resource."/>

-          <Annotation Term="OData.AutoExpandReferences"/>

-        </NavigationProperty>

-        <NavigationProperty Name="StorageControllers" Type="Collection(Storage.StorageController)">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="An array of references to the storage controllers which the PCIe device produces."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall reference a resource of type StorageController that represents the storage controllers associated with this resource."/>

-          <Annotation Term="OData.AutoExpandReferences"/>

-        </NavigationProperty>

-        <NavigationProperty Name="PCIeDevice" Type="PCIeDevice.PCIeDevice">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="A reference to the PCIeDevice on which this function resides."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be a reference to the resource that this function is a part of and shall reference a resource of type PCIeDevice."/>

-          <Annotation Term="OData.AutoExpandReferences"/>

-        </NavigationProperty>

-      </ComplexType>

-

-      <EnumType Name="DeviceClass">

-        <Member Name="UnclassifiedDevice">

-          <Annotation Term="OData.Description" String="An unclassified device."/>

-        </Member>

-        <Member Name="MassStorageController">

-          <Annotation Term="OData.Description" String="A mass storage controller."/>

-        </Member>

-        <Member Name="NetworkController">

-          <Annotation Term="OData.Description" String="A network controller."/>

-        </Member>

-        <Member Name="DisplayController">

-          <Annotation Term="OData.Description" String="A display controller."/>

-        </Member>

-        <Member Name="MultimediaController">

-          <Annotation Term="OData.Description" String="A multimedia controller."/>

-        </Member>

-        <Member Name="MemoryController">

-          <Annotation Term="OData.Description" String="A memory controller."/>

-        </Member>

-        <Member Name="Bridge">

-          <Annotation Term="OData.Description" String="A bridge."/>

-        </Member>

-        <Member Name="CommunicationController">

-          <Annotation Term="OData.Description" String="A communication controller."/>

-        </Member>

-        <Member Name="GenericSystemPeripheral">

-          <Annotation Term="OData.Description" String="A generic system peripheral."/>

-        </Member>

-        <Member Name="InputDeviceController">

-          <Annotation Term="OData.Description" String="An input device controller."/>

-        </Member>

-        <Member Name="DockingStation">

-          <Annotation Term="OData.Description" String="A docking station."/>

-        </Member>

-        <Member Name="Processor">

-          <Annotation Term="OData.Description" String="A processor."/>

-        </Member>

-        <Member Name="SerialBusController">

-          <Annotation Term="OData.Description" String="A serial bus controller."/>

-        </Member>

-        <Member Name="WirelessController">

-          <Annotation Term="OData.Description" String="A wireless controller."/>

-        </Member>

-        <Member Name="IntelligentController">

-          <Annotation Term="OData.Description" String="An intelligent controller."/>

-        </Member>

-        <Member Name="SatelliteCommunicationsController">

-          <Annotation Term="OData.Description" String="A satellite communications controller."/>

-        </Member>

-        <Member Name="EncryptionController">

-          <Annotation Term="OData.Description" String="An encryption controller."/>

-        </Member>

-        <Member Name="SignalProcessingController">

-          <Annotation Term="OData.Description" String="A signal processing controller."/>

-        </Member>

-        <Member Name="ProcessingAccelerators">

-          <Annotation Term="OData.Description" String="A processing accelerators."/>

-        </Member>

-        <Member Name="NonEssentialInstrumentation">

-          <Annotation Term="OData.Description" String="A non-essential instrumentation."/>

-        </Member>

-        <Member Name="Coprocessor">

-          <Annotation Term="OData.Description" String="A coprocessor."/>

-        </Member>

-        <Member Name="UnassignedClass">

-          <Annotation Term="OData.Description" String="An unassigned class."/>

-        </Member>

-        <Member Name="Other">

-          <Annotation Term="OData.Description" String="A other class. The function Device Class Id needs to be verified."/>

-        </Member>

-      </EnumType>

-

-      <EnumType Name="FunctionType">

-        <Member Name="Physical">

-          <Annotation Term="OData.Description" String="A physical PCie function."/>

-        </Member>

-        <Member Name="Virtual">

-          <Annotation Term="OData.Description" String="A virtual PCIe function."/>

-        </Member>

-      </EnumType>

-      

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_1">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_0.PCIeFunction"/>

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_2">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_1.PCIeFunction"/>

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_3">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="OData.Description" String="This version was created to change references to StorageController to be its abstract base type."/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_2.PCIeFunction"/>

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_4">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_3.PCIeFunction"/>

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_1_0">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="Redfish.Release" String="2017.1"/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_2.PCIeFunction">

-        <Property Name="Actions" Type="PCIeFunction.v1_1_0.Actions" Nullable="false">

-          <Annotation Term="OData.Description" String="The available actions for this resource."/>

-          <Annotation Term="OData.LongDescription" String="The Actions property shall contain the available actions for this resource."/>

-        </Property>

-      </EntityType>

-

-      <ComplexType Name="Actions">

-        <Annotation Term="OData.AdditionalProperties" Bool="false"/>

-        <Annotation Term="OData.Description" String="The available actions for this resource."/>

-        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this resource."/>

-        <Property Name="Oem" Type="PCIeFunction.v1_1_0.OemActions" Nullable="false">

-          <Annotation Term="OData.Description" String="This property contains the available OEM specific actions for this resource."/>

-          <Annotation Term="OData.LongDescription" String="This property shall contain any additional OEM actions for this resource."/>

-        </Property>

-      </ComplexType>

-

-      <ComplexType Name="OemActions">

-        <Annotation Term="OData.AdditionalProperties" Bool="true"/>

-        <Annotation Term="OData.Description" String="The available OEM specific actions for this resource."/>

-        <Annotation Term="OData.LongDescription" String="This type shall contain any additional OEM actions for this resource."/>

-      </ComplexType>

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_1_1">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="OData.Description" String="This version was created to change references to StorageController to be its abstract base type."/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_1_0.PCIeFunction"/>

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_1_2">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_1_1.PCIeFunction"/>

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_2_0">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="Redfish.Release" String="2018.1"/>

-      <Annotation Term="OData.Description" String="This version was created to add NetworkDeviceFunctions to the Links section."/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_1_1.PCIeFunction"/>

-      <ComplexType Name="Links" BaseType="PCIeFunction.v1_0_0.Links">

-        <Annotation Term="OData.Description" String="Contains references to other resources that are related to this resource."/>

-        <Annotation Term="OData.LongDescription" String="This type, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."/>

-        <NavigationProperty Name="NetworkDeviceFunctions" Type="Collection(NetworkDeviceFunction.NetworkDeviceFunction)">

-          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>

-          <Annotation Term="OData.Description" String="An array of references to the Network Device Functions which the PCIe device produces."/>

-          <Annotation Term="OData.LongDescription" String="The value of this property shall be an array of references to resources of type NetworkDeviceFunction that represents the network device functions associated with this resource."/>

-          <Annotation Term="OData.AutoExpandReferences"/>

-        </NavigationProperty>

-      </ComplexType>

-    </Schema>

-

-    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_2_1">

-      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>

-      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>

-      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_2_0.PCIeFunction"/>

-    </Schema>

-

-  </edmx:DataServices>

-</edmx:Edmx>

+<?xml version="1.0" encoding="UTF-8"?>
+<!---->
+<!--################################################################################       -->
+<!--# Redfish Schema:  PCIeFunction v1.2.3                                                 -->
+<!--#                                                                                      -->
+<!--# For a detailed change log, see the README file contained in the DSP8010 bundle,      -->
+<!--# available at http://www.dmtf.org/standards/redfish                                   -->
+<!--# Copyright 2014-2019 DMTF.                                                            -->
+<!--# For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright -->
+<!--################################################################################       -->
+<!---->
+<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
+
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Core.V1.xml">
+    <edmx:Include Namespace="Org.OData.Core.V1" Alias="OData"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://docs.oasis-open.org/odata/odata/v4.0/errata03/csd01/complete/vocabularies/Org.OData.Capabilities.V1.xml">
+    <edmx:Include Namespace="Org.OData.Capabilities.V1" Alias="Capabilities"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+    <edmx:Include Namespace="Validation.v1_0_0" Alias="Validation"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Resource_v1.xml">
+    <edmx:Include Namespace="Resource"/>
+    <edmx:Include Namespace="Resource.v1_0_0"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/RedfishExtensions_v1.xml">
+    <edmx:Include Namespace="RedfishExtensions.v1_0_0" Alias="Redfish"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/EthernetInterface_v1.xml">
+    <edmx:Include Namespace="EthernetInterface"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/PCIeDevice_v1.xml">
+    <edmx:Include Namespace="PCIeDevice"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Drive_v1.xml">
+    <edmx:Include Namespace="Drive"/>
+  </edmx:Reference>
+  <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/Storage_v1.xml">
+    <edmx:Include Namespace="Storage"/>
+  </edmx:Reference>
+    <edmx:Reference Uri="http://redfish.dmtf.org/schemas/v1/NetworkDeviceFunction_v1.xml">
+    <edmx:Include Namespace="NetworkDeviceFunction"/>
+  </edmx:Reference>
+
+  <edmx:DataServices>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+
+      <EntityType Name="PCIeFunction" BaseType="Resource.v1_0_0.Resource" Abstract="true">
+        <Annotation Term="OData.Description" String="The schema definition for the PCIeFunction Resource.  It represents the properties of a PCIeFunction attached to a System."/>
+        <Annotation Term="OData.LongDescription" String="This Resource shall represent a PCIeFunction attached to a System."/>
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="Capabilities.InsertRestrictions">
+          <Record>
+            <PropertyValue Property="Insertable" Bool="false"/>
+          </Record>
+        </Annotation>
+        <Annotation Term="Capabilities.UpdateRestrictions">
+          <Record>
+            <PropertyValue Property="Updatable" Bool="false"/>
+          </Record>
+        </Annotation>
+        <Annotation Term="Capabilities.DeleteRestrictions">
+          <Record>
+            <PropertyValue Property="Deletable" Bool="false"/>
+          </Record>
+        </Annotation>
+        <Annotation Term="Redfish.Uris">
+          <Collection>
+            <String>/redfish/v1/Chassis/{ChassisId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions/{PCIeFunctionId}</String>
+            <String>/redfish/v1/Systems/{ComputerSystemId}/PCIeDevices/{PCIeDeviceId}/PCIeFunctions/{PCIeFunctionId}</String>
+          </Collection>
+        </Annotation>
+      </EntityType>
+
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="Redfish.Release" String="2016.2"/>
+
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.PCIeFunction">
+        <Property Name="FunctionId" Type="Edm.Int64">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The PCIe Function Number."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the PCIe Function Number within a given PCIe device."/>
+        </Property>
+        <Property Name="FunctionType" Type="PCIeFunction.v1_0_0.FunctionType" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The type of the PCIe function."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the function type of the PCIe device function such as Physical or Virtual."/>
+        </Property>
+        <Property Name="DeviceClass" Type="PCIeFunction.v1_0_0.DeviceClass" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The class for this PCIe function."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the device class of the PCIe device function, such as storage, network, or memory."/>
+        </Property>
+        <Property Name="DeviceId" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The Device ID of this PCIe function."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the PCI Device ID of the PCIe device function."/>
+          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){2}$"/>
+        </Property>
+        <Property Name="VendorId" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The Vendor ID of this PCIe function."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the PCI Vendor ID of the PCIe device function."/>
+          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){2}$"/>
+        </Property>
+        <Property Name="ClassCode" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The Class Code of this PCIe function."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the PCI Class Code of the PCIe device function."/>
+          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){3}$"/>
+        </Property>
+        <Property Name="RevisionId" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The Revision ID of this PCIe function."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the PCI Revision ID of the PCIe device function."/>
+          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){1}$"/>
+        </Property>
+        <Property Name="SubsystemId" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The Subsystem ID of this PCIe function."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the PCI Subsystem ID of the PCIe device function."/>
+          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){2}$"/>
+        </Property>
+        <Property Name="SubsystemVendorId" Type="Edm.String">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The Subsystem Vendor ID of this PCIe function."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the PCI Subsystem Vendor ID of the PCIe device function."/>
+          <Annotation Term="Validation.Pattern" String="^0[xX](([a-fA-F]|[0-9]){2}){2}$"/>
+        </Property>
+
+        <Property Name="Status" Type="Resource.Status" Nullable="false">
+          <Annotation Term="OData.Description" String="The status and health of the Resource and its subordinate or dependent Resources."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain any status or health properties of the Resource."/>
+        </Property>
+
+        <Property Name="Links" Type="PCIeFunction.v1_0_0.Links" Nullable="false">
+          <Annotation Term="OData.Description" String="The links to other Resources that are related to this Resource."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain links to Resources that are related to but are not contained by, or subordinate to, this Resource."/>
+        </Property>
+      </EntityType>
+
+      <ComplexType Name="Links" BaseType="Resource.Links">
+        <Annotation Term="OData.Description" String="The links to other Resources that are related to this Resource."/>
+        <Annotation Term="OData.LongDescription" String="This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource."/>
+        <NavigationProperty Name="EthernetInterfaces" Type="Collection(EthernetInterface.EthernetInterface)">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="An array of links to the Ethernet interfaces that the PCIe device produces."/>
+          <Annotation Term="OData.LongDescription" String="This property shall link to a Resource of type EthernetInterface that represents the network interfaces associated with this Resource."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+        <NavigationProperty Name="Drives" Type="Collection(Drive.Drive)">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="An array of links to the drives that the PCIe device produces."/>
+          <Annotation Term="OData.LongDescription" String="This property shall link to a Resource of type Drive that represents the storage drives associated with this Resource."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+        <NavigationProperty Name="StorageControllers" Type="Collection(Storage.StorageController)">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="An array of links to the storage controllers that the PCIe device produces."/>
+          <Annotation Term="OData.LongDescription" String="This property shall link to a Resource of type StorageController that represents the storage controllers associated with this Resource."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+        <NavigationProperty Name="PCIeDevice" Type="PCIeDevice.PCIeDevice" Nullable="false">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="The link to the PCIe device on which this function resides."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain a link to a Resource of type PCIeDevice of which this function is a part."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+      </ComplexType>
+
+      <EnumType Name="DeviceClass">
+        <Member Name="UnclassifiedDevice">
+          <Annotation Term="OData.Description" String="An unclassified device."/>
+        </Member>
+        <Member Name="MassStorageController">
+          <Annotation Term="OData.Description" String="A mass storage controller."/>
+        </Member>
+        <Member Name="NetworkController">
+          <Annotation Term="OData.Description" String="A network controller."/>
+        </Member>
+        <Member Name="DisplayController">
+          <Annotation Term="OData.Description" String="A display controller."/>
+        </Member>
+        <Member Name="MultimediaController">
+          <Annotation Term="OData.Description" String="A multimedia controller."/>
+        </Member>
+        <Member Name="MemoryController">
+          <Annotation Term="OData.Description" String="A memory controller."/>
+        </Member>
+        <Member Name="Bridge">
+          <Annotation Term="OData.Description" String="A bridge."/>
+        </Member>
+        <Member Name="CommunicationController">
+          <Annotation Term="OData.Description" String="A communication controller."/>
+        </Member>
+        <Member Name="GenericSystemPeripheral">
+          <Annotation Term="OData.Description" String="A generic system peripheral."/>
+        </Member>
+        <Member Name="InputDeviceController">
+          <Annotation Term="OData.Description" String="An input device controller."/>
+        </Member>
+        <Member Name="DockingStation">
+          <Annotation Term="OData.Description" String="A docking station."/>
+        </Member>
+        <Member Name="Processor">
+          <Annotation Term="OData.Description" String="A processor."/>
+        </Member>
+        <Member Name="SerialBusController">
+          <Annotation Term="OData.Description" String="A serial bus controller."/>
+        </Member>
+        <Member Name="WirelessController">
+          <Annotation Term="OData.Description" String="A wireless controller."/>
+        </Member>
+        <Member Name="IntelligentController">
+          <Annotation Term="OData.Description" String="An intelligent controller."/>
+        </Member>
+        <Member Name="SatelliteCommunicationsController">
+          <Annotation Term="OData.Description" String="A satellite communications controller."/>
+        </Member>
+        <Member Name="EncryptionController">
+          <Annotation Term="OData.Description" String="An encryption controller."/>
+        </Member>
+        <Member Name="SignalProcessingController">
+          <Annotation Term="OData.Description" String="A signal processing controller."/>
+        </Member>
+        <Member Name="ProcessingAccelerators">
+          <Annotation Term="OData.Description" String="A processing accelerators."/>
+        </Member>
+        <Member Name="NonEssentialInstrumentation">
+          <Annotation Term="OData.Description" String="A non-essential instrumentation."/>
+        </Member>
+        <Member Name="Coprocessor">
+          <Annotation Term="OData.Description" String="A coprocessor."/>
+        </Member>
+        <Member Name="UnassignedClass">
+          <Annotation Term="OData.Description" String="An unassigned class."/>
+        </Member>
+        <Member Name="Other">
+          <Annotation Term="OData.Description" String="A other class.  The function Device Class Id needs to be verified."/>
+        </Member>
+      </EnumType>
+
+      <EnumType Name="FunctionType">
+        <Member Name="Physical">
+          <Annotation Term="OData.Description" String="A physical PCIe function."/>
+        </Member>
+        <Member Name="Virtual">
+          <Annotation Term="OData.Description" String="A virtual PCIe function."/>
+        </Member>
+      </EnumType>
+      
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_0.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to show annotations in previous namespaces were updated."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_1.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_3">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to change StorageController to its abstract base type."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_2.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_4">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_3.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_5">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that URI properties use the uri-reference format.  It was also created to add a missing term on PCIeDevice to not allow it to be null."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_4.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_0_6">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to update descriptions that this schema defines."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_5.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_1_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="Redfish.Release" String="2017.1"/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_0_2.PCIeFunction">
+        <Property Name="Actions" Type="PCIeFunction.v1_1_0.Actions" Nullable="false">
+          <Annotation Term="OData.Description" String="The available actions for this Resource."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the available actions for this Resource."/>
+        </Property>
+      </EntityType>
+
+      <ComplexType Name="Actions">
+        <Annotation Term="OData.AdditionalProperties" Bool="false"/>
+        <Annotation Term="OData.Description" String="The available actions for this Resource."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain the available actions for this Resource."/>
+        <Property Name="Oem" Type="PCIeFunction.v1_1_0.OemActions" Nullable="false">
+          <Annotation Term="OData.Description" String="The available OEM-specific actions for this Resource."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain the available OEM-specific actions for this Resource."/>
+        </Property>
+      </ComplexType>
+
+      <ComplexType Name="OemActions">
+        <Annotation Term="OData.AdditionalProperties" Bool="true"/>
+        <Annotation Term="OData.Description" String="The available OEM-specific actions for this Resource."/>
+        <Annotation Term="OData.LongDescription" String="This type shall contain the available OEM-specific actions for this Resource."/>
+      </ComplexType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_1_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to change StorageController to its abstract base type."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_1_0.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_1_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_1_1.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_1_3">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that URI properties use the uri-reference format.  It was also created to add a missing term on PCIeDevice to not allow it to be null."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_1_2.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_1_4">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to update descriptions that this schema defines."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_1_3.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_2_0">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="Redfish.Release" String="2018.1"/>
+      <Annotation Term="OData.Description" String="This version was created to add NetworkDeviceFunctions to the Links section."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_1_1.PCIeFunction"/>
+      <ComplexType Name="Links" BaseType="PCIeFunction.v1_0_0.Links">
+        <Annotation Term="OData.Description" String="The links to other Resources that are related to this Resource."/>
+        <Annotation Term="OData.LongDescription" String="This Redfish Specification-described type shall contain links to Resources that are related to but are not contained by or subordinate to this Resource."/>
+        <NavigationProperty Name="NetworkDeviceFunctions" Type="Collection(NetworkDeviceFunction.NetworkDeviceFunction)">
+          <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
+          <Annotation Term="OData.Description" String="An array of links to the network device functions that the PCIe device produces."/>
+          <Annotation Term="OData.LongDescription" String="This property shall contain an array of links to Resources of the NetworkDeviceFunction type that represents the network device functions associated with this Resource."/>
+          <Annotation Term="OData.AutoExpandReferences"/>
+        </NavigationProperty>
+      </ComplexType>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_2_1">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that OData properties are marked as required, and integer properties are marked as integer rather than number."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_2_0.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_2_2">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to force the regeneration of JSON Schema so that URI properties use the uri-reference format.  It was also created to add a missing term on PCIeDevice to not allow it to be null."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_2_1.PCIeFunction"/>
+    </Schema>
+
+    <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="PCIeFunction.v1_2_3">
+      <Annotation Term="Redfish.OwningEntity" String="DMTF"/>
+      <Annotation Term="OData.Description" String="This version was created to update descriptions that this schema defines."/>
+      <EntityType Name="PCIeFunction" BaseType="PCIeFunction.v1_2_2.PCIeFunction"/>
+    </Schema>
+
+  </edmx:DataServices>
+</edmx:Edmx>