Pack: Fixed version histories.
- Aligned CMSIS-Build to version 0.9.0 (beta)
- Aligned CMSIS-Driver/VIO to version 0.1.0
- Enhanced linter config
  - Added checks for CMSIS-Build
  - Checking version and history of PACK.xsd

Change-Id: I0d74d479c12e731d2aecf3bb0fb08d248a5ee314
diff --git a/ARM.CMSIS.pdsc b/ARM.CMSIS.pdsc
index a7beee6..0524a85 100644
--- a/ARM.CMSIS.pdsc
+++ b/ARM.CMSIS.pdsc
@@ -10,6 +10,8 @@
   <releases>
     <release version="5.7.0-dev8">
       Active development...
+      CMSIS-Build: 0.9.0 (beta)
+        - Draft for CMSIS Project description (CPRJ)
       Devices:
         - Reworked ARMCM* C-StartUp files.
       Utilities:
@@ -61,8 +63,8 @@
       CMSIS-Driver: 2.8.0
         - removed volatile from status related typedefs in APIs
         - enhanced WiFi Interface API with support for polling Socket Receive/Send
-      CMSIS-Pack: 1.6.1
-        - added custom attribute to components that require custom implementation
+      CMSIS-Pack: 1.6.3 (see revision history for details)
+        - deprecating all types specific to cpdsc format. Cpdsc is replaced by Cprj with dedicated schema.
       Devices:
         - ARMv81MML startup code recognizing __MVE_USED macro
         - Refactored vector table references for all Cortex-M devices
diff --git a/CMSIS/DoxyGen/Build/Build.dxy b/CMSIS/DoxyGen/Build/Build.dxy
index 1f8ba62..e2347d9 100644
--- a/CMSIS/DoxyGen/Build/Build.dxy
+++ b/CMSIS/DoxyGen/Build/Build.dxy
@@ -38,7 +38,7 @@
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = "Version 0.1.0"
+PROJECT_NUMBER         = "Version 0.9.0 (beta)"
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff --git a/CMSIS/DoxyGen/Build/src/General.txt b/CMSIS/DoxyGen/Build/src/General.txt
index 845011f..97fb7ca 100644
--- a/CMSIS/DoxyGen/Build/src/General.txt
+++ b/CMSIS/DoxyGen/Build/src/General.txt
@@ -58,8 +58,12 @@
     <th>Description</th>
   </tr>
   <tr>
-    <td>0.10</td>
+    <td>0.9.0 (beta)</td>
     <td>Release for beta review</td>
   </tr>
+  <tr>
+    <td>0.1.0</td>
+    <td>Release for alpha review</td>
+  </tr>
 </table>
 */
diff --git a/CMSIS/DoxyGen/General/src/introduction.txt b/CMSIS/DoxyGen/General/src/introduction.txt
index 7e21c6f..f9a89f6 100644
--- a/CMSIS/DoxyGen/General/src/introduction.txt
+++ b/CMSIS/DoxyGen/General/src/introduction.txt
@@ -170,10 +170,12 @@
     <tr>
       <td>5.7.0</td>
       <td>
-        - CMSIS-Build 0.1.0
+        - CMSIS-Build 0.9.0 (beta)
+          - Draft for CMSIS Project description (CPRJ)
         - CMSIS-Core (Cortex-M) 5.4.0
         - CMSIS-Core (Cortex-A) 1.1.4 (unchanged)
         - CMSIS-Driver 2.8.0
+          - Added VIO API 0.1.0 (preview)
         - CMSIS-DSP 1.8.0
         - CMSIS-NN 1.3.0
         - CMSIS-RTOS 2.1.3 (unchanged)
diff --git a/linter.py b/linter.py
index e3ff698..1dcb486 100644
--- a/linter.py
+++ b/linter.py
@@ -90,6 +90,15 @@
   def _s(self, file):
     return self._file_version_(file)
     
+  def _xsd(self, file, rev=False, history=False):
+    if rev:
+      return self._all_(file)
+    elif history:
+      return self._regex_(file, ".*[0-9]+\. [A-Z][a-z]+ [12][0-9]+: (v)?(\d+.\d+(.\d+)?).*", 2)
+    else:
+      xsd = lxml.etree.parse(str(file)).getroot()
+      return SemanticVersion(xsd.get("version", None))
+
   def overview_txt(self, file, skip = 0):
     return self._revhistory_(file, skip)
     
@@ -129,7 +138,7 @@
     
   def pack_version(self):
     return self._pack.version()
-    
+  
   def cmsis_corem_component(self):
     rte = { 'components' : set(), 'Dcore' : "Cortex-M3", 'Dvendor' : "*", 'Dname' : "*", 'Dtz' : "*", 'Dsecure' : "*", 'Tcompiler' : "*", 'Toptions' : "*" }
     cs = self._pack.component_by_name(rte, "CMSIS.CORE")
@@ -169,6 +178,13 @@
     self.verify_version("CMSIS/DoxyGen/General/general.dxy", v)
     self.verify_version("CMSIS/DoxyGen/General/src/introduction.txt", v)
 
+  def check_build(self):
+    """CMSIS-Build version"""
+    v = self._versionParser.get_version("CMSIS/DoxyGen/Build/Build.dxy")
+    self.verify_version("CMSIS/DoxyGen/Build/src/General.txt", v)
+    self.verify_version("CMSIS/DoxyGen/General/src/introduction.txt", v, component="CMSIS-Build")
+    self.verify_version(self._pack.location(), v, component="CMSIS-Build")
+
   def check_corem(self):
     """CMSIS-Core(M) version"""
     v = self.cmsis_corem_component()
@@ -215,7 +231,10 @@
 
   def check_pack(self):
     """CMSIS-Pack version"""
-    v = self._versionParser.get_version("CMSIS/DoxyGen/Pack/Pack.dxy")
+    v = self._versionParser.get_version("CMSIS/Utilities/PACK.xsd")
+    self.verify_version("CMSIS/Utilities/PACK.xsd:Revision", v, rev=True)
+    self.verify_version("CMSIS/Utilities/PACK.xsd:History", v, history=True)
+    self.verify_version("CMSIS/DoxyGen/Pack/Pack.dxy", v)
     self.verify_version("CMSIS/DoxyGen/Pack/src/General.txt", v)
     self.verify_version("CMSIS/DoxyGen/General/src/introduction.txt", v, component="CMSIS-Pack")
     self.verify_version(self._pack.location(), v, component="CMSIS-Pack")