]> source.dussan.org Git - poi.git/commitdiff
Bug 58048: Add visio schemas to the OOXML jar
authorDustin Spicuzza <virtuald@apache.org>
Wed, 7 Oct 2015 02:41:30 +0000 (02:41 +0000)
committerDustin Spicuzza <virtuald@apache.org>
Wed, 7 Oct 2015 02:41:30 +0000 (02:41 +0000)
- Bumped OOXML jar version also

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1707177 13f79535-47bb-0310-9956-ffa450edef68

.classpath
build.xml
sonar/ooxml-schema/pom.xml
src/ooxml/resources/org/apache/poi/xdgf/visio.xsd [new file with mode: 0644]

index 5efa12f1e2f3805e93e2088443d574eb42b0e2cb..b7be44367453b8f51860e75acb75bbf78a937984 100644 (file)
@@ -23,7 +23,7 @@
        <classpathentry kind="lib" path="ooxml-lib/xmlbeans-2.6.0.jar"/>
        <classpathentry kind="lib" path="lib/hamcrest-core-1.3.jar"/>
        <classpathentry kind="lib" path="lib/junit-4.12.jar"/>
-       <classpathentry kind="lib" path="ooxml-lib/ooxml-schemas-1.1.jar" sourcepath="ooxml-lib/ooxml-schemas-1.1-sources.jar"/>
+       <classpathentry kind="lib" path="ooxml-lib/ooxml-schemas-1.2.jar" sourcepath="ooxml-lib/ooxml-schemas-1.2-sources.jar"/>
        <classpathentry kind="lib" path="ooxml-lib/ooxml-security-1.0.jar" sourcepath="ooxml-lib/ooxml-security-1.0-sources.jar"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
        <classpathentry kind="lib" path="compile-lib/slf4j-api-1.7.7.jar"/>
index a57a953c9a6c672b13e744032c3588964e52f4bc..7f8c34b21a5937904367c159b19ea25d5608eb25 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -203,8 +203,8 @@ under the License.
     <property name="ooxml.xsds.url.1"
               value="http://www.ecma-international.org/publications/files/ECMA-ST/Office%20Open%20XML%201st%20edition%20Part%204%20(PDF).zip"/>
     <property name="ooxml.xsds.src.dir" location="build/ooxml-xsds-src"/>
-    <property name="ooxml.xsds.src.jar" location="${ooxml.lib}/ooxml-schemas-1.1-sources.jar"/>
-    <property name="ooxml.xsds.jar" location="${ooxml.lib}/ooxml-schemas-1.1.jar"/>
+    <property name="ooxml.xsds.src.jar" location="${ooxml.lib}/ooxml-schemas-1.2-sources.jar"/>
+    <property name="ooxml.xsds.jar" location="${ooxml.lib}/ooxml-schemas-1.2.jar"/>
 
     <!-- additional schemas are packed into the poi schemas jar, -->
     <!-- so we don't have to care about a seperate versioning of the original ooxml schemas -->
@@ -222,6 +222,7 @@ under the License.
     <property name="ooxml.security.src.jar" location="${ooxml.lib}/ooxml-security-1.0-sources.jar"/>
     <property name="ooxml.security.jar" location="${ooxml.lib}/ooxml-security-1.0.jar"/>
     <property name="ooxml.security.xsd.dir" location="src/ooxml/resources/org/apache/poi/poifs/crypt"/>
+    <property name="ooxml.visio.xsd.dir" location="src/ooxml/resources/org/apache/poi/xdgf"/>
 
     <property name="maven.ooxml.xsds.version.id" value="1.0"/>
     <property name="maven.ooxml.xsds.jar" value="ooxml-schemas-${maven.ooxml.xsds.version.id}.jar"/>
@@ -639,6 +640,9 @@ under the License.
         <property name="ooxml.xsds.tmp.dir" location="build/ooxml-xsds"/>
         <mkdir dir="${ooxml.xsds.tmp.dir}"/>
         <unzip src="${ooxml.lib}/${ooxml.xsds.izip.1}" dest="${ooxml.xsds.tmp.dir}"/>
+        <copy todir="${ooxml.xsds.tmp.dir}">
+            <fileset dir="${ooxml.visio.xsd.dir}"/>
+        </copy>
         <xmlbean
                 schema="${ooxml.xsds.tmp.dir}"
                 srcgendir="${ooxml.xsds.src.dir}"
@@ -1788,7 +1792,7 @@ under the License.
             <auxClasspath path="${compile.lib}/bcprov-ext-jdk15on-1.51.jar" />
             <auxClasspath path="${compile.lib}/slf4j-api-1.7.7.jar" />
             <auxClasspath path="${compile.lib}/xmlsec-2.0.1.jar" />
-            <auxClasspath path="ooxml-lib/ooxml-schemas-1.1.jar" />
+            <auxClasspath path="${ooxml.xsds.jar}" />
             <auxClasspath path="ooxml-lib/ooxml-security-1.0.jar" />
             <auxClasspath path="ooxml-lib/xmlbeans-2.6.0.jar" />
             <auxClasspath path="lib/commons-codec-1.9.jar" />
@@ -1811,7 +1815,7 @@ under the License.
             <auxClasspath path="${compile.lib}/bcprov-ext-jdk15on-1.51.jar" />
             <auxClasspath path="${compile.lib}/slf4j-api-1.7.7.jar" />
             <auxClasspath path="${compile.lib}/xmlsec-2.0.1.jar" />
-            <auxClasspath path="ooxml-lib/ooxml-schemas-1.1.jar" />
+            <auxClasspath path="${ooxml.xsds.jar}" />
             <auxClasspath path="ooxml-lib/ooxml-security-1.0.jar" />
             <auxClasspath path="ooxml-lib/xmlbeans-2.6.0.jar" />
             <auxClasspath path="lib/commons-codec-1.9.jar" />
index 36183c643a4a679963e05b472ccc19349c9ef9ef..32108f7aa73416ad8c28cd2307f6d357f84300a7 100644 (file)
                                        </execution>
                                </executions>
                        </plugin>
+      
+      <!-- include the visio schema -->
+                       <plugin>
+                               <artifactId>maven-resources-plugin</artifactId>
+                               <version>2.6</version>
+                               <executions>
+                                       <execution>
+                                               <id>copy-sources</id>
+                                               <phase>generate-sources</phase>
+                                               <goals>
+                                                       <goal>copy-resources</goal>
+                                               </goals>
+                                               <configuration>
+                                                       <outputDirectory>target/schemas/</outputDirectory>
+                                                       <resources>
+                                                               <resource>
+                                                                       <directory>../../src/ooxml/resources/org/apache/poi/xdgf/</directory>
+                                                               </resource>
+                                                       </resources>
+                                               </configuration>
+                                       </execution>
+                               </executions>
+                       </plugin>
                        
                        <plugin>
                          <groupId>org.codehaus.mojo</groupId>
diff --git a/src/ooxml/resources/org/apache/poi/xdgf/visio.xsd b/src/ooxml/resources/org/apache/poi/xdgf/visio.xsd
new file mode 100644 (file)
index 0000000..eec0b68
--- /dev/null
@@ -0,0 +1,829 @@
+<!--
+  XML for Visio Schema
+  http://schemas.microsoft.com/office/visio/2011/1/core
+  Copyright (C) 2000-2002 Microsoft Corporation. All rights reserved.
+-->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://schemas.microsoft.com/office/visio/2012/main"
+            xmlns="http://schemas.microsoft.com/office/visio/2012/main"
+            xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
+            elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+  <xsd:import namespace="http://schemas.openxmlformats.org/officeDocument/2006/relationships"/>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      Permission to copy, display and distribute the contents of this document (the
+      "Specification"), in any medium for any purpose without fee or royalty is
+      hereby granted, provided that you include the following notice on ALL copies of
+      the Specification, or portions thereof, that you make:
+      Copyright (c) Microsoft Corporation.  All rights reserved.  Permission to copy,
+      display and distribute this document is available at:
+      http://msdn.microsoft.com/library/en-us/odcXMLRef/html/odcXMLRefLegalNotice.asp?frame=true.
+      No right to create modifications or derivatives of this Specification is
+      granted herein. There is a separate patent license available to parties
+      interested in implementing software programs that can read and write files that
+      conform to the Specification.  This patent license is available at this
+      location:  http://www.microsoft.com/mscorp/ip/format/xmlpatentlicense.asp.
+      THE SPECIFICATION IS PROVIDED "AS IS" AND MICROSOFT MAKES NO REPRESENTATIONS OR
+      WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF
+      MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;
+      THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT
+      THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS,
+      COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. MICROSOFT WILL NOT BE LIABLE FOR ANY
+      DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
+      OR RELATING TO ANY USE OR DISTRIBUTION OF THE SPECIFICATION.
+      The name and trademarks of Microsoft may NOT be used in any manner, including
+      advertising or publicity pertaining to the Specification or its contents
+      without specific, written prior permission. Title to copyright in the
+      Specification will at all times remain with Microsoft. No other rights are
+      granted by implication, estoppel or otherwise.
+    </xsd:documentation>
+  </xsd:annotation>
+  
+  <!--
+    Root-level elements for different parts
+  -->
+  <!--document.xml-->
+  <xsd:element name="VisioDocument" type="VisioDocument_Type" />
+  <!--masters/masters.xml-->
+  <xsd:element name="Masters" type="Masters_Type" />
+  <!--masters/master#.xml-->
+  <xsd:element name="MasterContents" type="PageContents_Type" />
+  <!--pages/pages.xml-->
+  <xsd:element name="Pages" type="Pages_Type" />
+  <!--pages/page#.xml-->
+  <xsd:element name="PageContents" type="PageContents_Type" />
+  <!--data/connections.xml-->
+  <xsd:element name="DataConnections" type="DataConnections_Type" />
+  <!--data/recordsets.xml-->
+  <xsd:element name="DataRecordSets" type="DataRecordSets_Type" />
+  <!--comments.xml-->
+  <xsd:element name="Comments" type="Comments_Type" />
+  <!--extensions.xml-->
+  <xsd:element name="Extensions" type="Extensions_Type" />
+  <!--
+    Complex types
+  -->
+  <xsd:complexType name="VisioDocument_Type">
+    <xsd:sequence>
+      <xsd:element name="DocumentSettings" type="DocumentSettings_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="Colors" type="Colors_Type" minOccurs="0" maxOccurs="1" />
+      <xsd:element name="FaceNames" type="FaceNames_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="StyleSheets" type="StyleSheets_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="DocumentSheet" type="DocumentSheet_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="EventList" type="EventList_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="HeaderFooter" type="HeaderFooter_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="PublishSettings" type="PublishSettings_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
+               processContents="lax" />
+    </xsd:sequence>
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+
+  <!--Sheet abstract base class-->
+  <xsd:complexType name="Sheet_Type" abstract="true">
+    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+      <xsd:element name="Cell" type="Cell_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="Trigger" type="Trigger_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="Section" type="Section_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+
+      <!--Sheets can hold and roundtrip arbitrary, unknown sub-XML-->
+      <xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
+               processContents="lax" />
+    </xsd:sequence>
+    
+    <!--Style sheet IDs for inheritance-->
+    <xsd:attribute name="LineStyle" type="xsd:unsignedInt" />
+    <xsd:attribute name="FillStyle" type="xsd:unsignedInt" />
+    <xsd:attribute name="TextStyle" type="xsd:unsignedInt" />
+
+    <!--Sheets can hold and roundtrip arbitrary, unknown attributes-->
+    <xsd:anyAttribute namespace="##other" processContents="lax" />
+  </xsd:complexType>
+
+  <!--Section base types-->
+  <xsd:complexType name="Section_Type">
+    <xsd:sequence>
+      <!--Cells only show up directly under the Geometry section-->
+      <xsd:element name="Cell" type="Cell_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="Trigger" type="Trigger_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+
+      <!--All Sections have child rows-->
+      <xsd:element name="Row" type="Row_Type" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    
+    <xsd:attribute name="N" type="xsd:string" use="required" />
+    <xsd:attribute name="Del" type="xsd:boolean" />
+    
+    <!--Only Geometry sections have indexes as there can be several in a Sheet-->
+    <xsd:attribute name="IX" type="xsd:unsignedInt" />
+  </xsd:complexType>
+
+  <!--Row base types-->
+  <xsd:complexType name="Row_Type">
+    <xsd:sequence>
+      <xsd:element name="Cell" type="Cell_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="Trigger" type="Trigger_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+    
+    <!--The name attributes are only used on named rows-->
+    <xsd:attribute name="N" type="xsd:string" />
+    <xsd:attribute name="LocalName" type="xsd:string" />
+    
+    <!--The index attribute is only used on indexed rows-->
+    <xsd:attribute name="IX" type="xsd:unsignedInt" />
+    
+    <!--The type attribute is only used on Rows in the Geometry section-->
+    <xsd:attribute name="T" type="xsd:string" />
+    
+    <!--Any row can be locally deleted-->
+    <xsd:attribute name="Del" type="xsd:boolean" />
+  </xsd:complexType>
+
+  <!--Cell base type-->
+  <xsd:complexType name="Cell_Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="RefBy" type="RefBy_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="N" type="xsd:string" use="required" />
+    <xsd:attribute name="U" type="xsd:string" />
+    <xsd:attribute name="E" type="xsd:string" />
+    <xsd:attribute name="F" type="xsd:string" />
+    <xsd:attribute name="V" type="xsd:string" />
+  </xsd:complexType>
+
+  <!--Trigger base type-->
+  <xsd:complexType name="Trigger_Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="RefBy" type="RefBy_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="N" type="xsd:string" use="required" />
+  </xsd:complexType>
+
+  <xsd:complexType name="DocumentSheet_Type">
+    <xsd:complexContent>
+      <xsd:extension base="Sheet_Type">
+        <xsd:attribute name="Name" type="xsd:string" />
+        <xsd:attribute name="NameU" type="xsd:string" />
+        <xsd:attribute name="IsCustomName" type="xsd:boolean" />
+        <xsd:attribute name="IsCustomNameU" type="xsd:boolean" />
+        <xsd:attribute name="UniqueID" type="xsd:string" />
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  
+  <xsd:complexType name="StyleSheet_Type">
+    <xsd:complexContent>
+      <xsd:extension base="Sheet_Type">
+        <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+        <xsd:attribute name="Name" type="xsd:string" />
+        <xsd:attribute name="NameU" type="xsd:string" />
+        <xsd:attribute name="IsCustomName" type="xsd:boolean" />
+        <xsd:attribute name="IsCustomNameU" type="xsd:boolean" />
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  
+  <xsd:complexType name="PageSheet_Type">
+    <xsd:complexContent>
+      <xsd:extension base="Sheet_Type">
+        <xsd:attribute name="UniqueID" type="xsd:string" />
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  
+  <xsd:complexType name="ShapeSheet_Type">
+    <xsd:complexContent>
+      <xsd:extension base="Sheet_Type">
+        <xsd:sequence>
+          <!--Shape Text-->
+          <xsd:element name="Text" type="Text_Type" minOccurs="0" maxOccurs="1" />
+          
+          <!--Legacy data fields-->
+          <xsd:element name="Data1" type="Data_Type" minOccurs="0" maxOccurs="1" />
+          <xsd:element name="Data2" type="Data_Type" minOccurs="0" maxOccurs="1" />
+          <xsd:element name="Data3" type="Data_Type" minOccurs="0" maxOccurs="1" />
+          
+          <!--Foreign object data for images, OLE, ActiveX, etc.-->
+          <xsd:element name="ForeignData" type="ForeignData_Type" minOccurs="0"
+                       maxOccurs="1" />
+          
+          <!--Sub-shapes if this is a group-->
+          <xsd:element name="Shapes" type="Shapes_Type" minOccurs="0"
+                       maxOccurs="1" />
+        </xsd:sequence>
+        
+        <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+        <xsd:attribute name="OriginalID" type="xsd:unsignedInt" />
+        <xsd:attribute name="Del" type="xsd:boolean" />
+        <xsd:attribute name="MasterShape" type="xsd:unsignedInt" />
+        <xsd:attribute name="UniqueID" type="xsd:string" />
+        <xsd:attribute name="Name" type="xsd:string" />
+        <xsd:attribute name="NameU" type="xsd:string" />
+        <xsd:attribute name="IsCustomName" type="xsd:boolean" />
+        <xsd:attribute name="IsCustomNameU" type="xsd:boolean" />
+        <xsd:attribute name="Master" type="xsd:unsignedInt" />
+        <xsd:attribute name="Type" type="xsd:token" />
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+
+  <xsd:complexType name="Text_Type" mixed="true">
+    <xsd:choice minOccurs="0" maxOccurs="unbounded">
+      <xsd:element name="cp" type="cp_Type" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="pp" type="pp_Type" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="tp" type="tp_Type" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="fld" type="fld_Type" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:choice>
+  </xsd:complexType>
+
+  <!--Text fields-->
+  <xsd:complexType name="cp_Type">
+    <xsd:attribute name="IX" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="pp_Type">
+    <xsd:attribute name="IX" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="tp_Type">
+    <xsd:attribute name="IX" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="fld_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+        <xsd:attribute name="IX" type="xsd:unsignedInt" use="required" />
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:complexType name="Data_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:complexType name="ForeignData_Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="Rel" type="Rel_Type" minOccurs="1" maxOccurs="1" />
+    </xsd:sequence>
+    <xsd:attribute name="ForeignType" type="xsd:token" use="required" />
+    <xsd:attribute name="ObjectType" type="xsd:unsignedInt" />
+    <xsd:attribute name="ShowAsIcon" type="xsd:boolean" />
+    <xsd:attribute name="ObjectWidth" type="xsd:double" />
+    <xsd:attribute name="ObjectHeight" type="xsd:double" />
+    <xsd:attribute name="MappingMode" type="xsd:unsignedShort" />
+    <xsd:attribute name="ExtentX" type="xsd:double" />
+    <xsd:attribute name="ExtentY" type="xsd:double" />
+    <xsd:attribute name="CompressionType" type="xsd:token" />
+    <xsd:attribute name="CompressionLevel" type="xsd:double" />
+  </xsd:complexType>
+  
+  <xsd:complexType name="DocumentSettings_Type">
+    <xsd:all>
+      <xsd:element name="GlueSettings" type="GlueSettings_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="SnapSettings" type="SnapSettings_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="SnapExtensions" type="SnapExtensions_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="SnapAngles" type="SnapAngles_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="DynamicGridEnabled" type="DynamicGridEnabled_Type"
+                   minOccurs="0" maxOccurs="1" />
+      <xsd:element name="ProtectStyles" type="ProtectStyles_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="ProtectShapes" type="ProtectShapes_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="ProtectMasters" type="ProtectMasters_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="ProtectBkgnds" type="ProtectBkgnds_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="CustomMenusFile" type="CustomMenusFile_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="CustomToolbarsFile" type="CustomToolbarsFile_Type"
+                   minOccurs="0" maxOccurs="1" />
+      <xsd:element name="AttachedToolbars" type="AttachedToolbars_Type" minOccurs="0"
+                   maxOccurs="1" />
+    </xsd:all>
+    <xsd:attribute name="TopPage" type="xsd:unsignedInt" />
+    <xsd:attribute name="DefaultTextStyle" type="xsd:unsignedInt" />
+    <xsd:attribute name="DefaultLineStyle" type="xsd:unsignedInt" />
+    <xsd:attribute name="DefaultFillStyle" type="xsd:unsignedInt" />
+    <xsd:attribute name="DefaultGuideStyle" type="xsd:unsignedInt" />
+  </xsd:complexType>
+  <xsd:complexType name="GlueSettings_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:int" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="SnapSettings_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:int" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="SnapExtensions_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:int" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="SnapAngles_Type">
+    <xsd:sequence>
+      <xsd:element name="SnapAngle" type="SnapAngle_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="SnapAngle_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:double" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="DynamicGridEnabled_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:boolean" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="ProtectStyles_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:boolean" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="ProtectShapes_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:boolean" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="ProtectMasters_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:boolean" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="ProtectBkgnds_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:boolean" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="CustomMenusFile_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="CustomToolbarsFile_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="AttachedToolbars_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:base64Binary" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="Colors_Type">
+    <xsd:sequence>
+      <xsd:element name="ColorEntry" type="ColorEntry_Type" minOccurs="1"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="ColorEntry_Type">
+    <xsd:attribute name="IX" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="RGB" type="xsd:string" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="FaceNames_Type">
+    <xsd:sequence>
+      <xsd:element name="FaceName" type="FaceName_Type" minOccurs="1"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="FaceName_Type">
+    <xsd:attribute name="NameU" type="xsd:string" use="required" />
+    <xsd:attribute name="UnicodeRanges" type="xsd:string" />
+    <xsd:attribute name="CharSets" type="xsd:string" />
+    <xsd:attribute name="Panos" type="xsd:string" />
+    <xsd:attribute name="Panose" type="xsd:string" />
+    <xsd:attribute name="Flags" type="xsd:unsignedInt" />
+  </xsd:complexType>
+  <xsd:complexType name="StyleSheets_Type">
+    <xsd:sequence>
+      <xsd:element name="StyleSheet" type="StyleSheet_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="Masters_Type">
+    <xsd:sequence>
+      <xsd:element name="Master" type="Master_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="MasterShortcut" type="MasterShortcut_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="Master_Type">
+    <xsd:all>
+      <xsd:element name="PageSheet" type="PageSheet_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="Rel" type="Rel_Type" minOccurs="1" maxOccurs="1" />
+      <xsd:element name="Icon" type="Icon_Type" minOccurs="0" maxOccurs="1" />
+    </xsd:all>
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="BaseID" type="xsd:string" />
+    <xsd:attribute name="UniqueID" type="xsd:string" />
+    <xsd:attribute name="MatchByName" type="xsd:boolean" />
+    <xsd:attribute name="Name" type="xsd:string" />
+    <xsd:attribute name="NameU" type="xsd:string" />
+    <xsd:attribute name="IsCustomName" type="xsd:boolean" />
+    <xsd:attribute name="IsCustomNameU" type="xsd:boolean" />
+    <xsd:attribute name="IconSize" type="xsd:unsignedShort" />
+    <xsd:attribute name="PatternFlags" type="xsd:unsignedShort" />
+    <xsd:attribute name="Prompt" type="xsd:string" />
+    <xsd:attribute name="Hidden" type="xsd:boolean" />
+    <xsd:attribute name="IconUpdate" type="xsd:boolean" />
+    <xsd:attribute name="AlignName" type="xsd:unsignedShort" />
+    <xsd:attribute name="MasterType" type="xsd:unsignedShort" />
+  </xsd:complexType>
+  <xsd:complexType name="Icon_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:base64Binary" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="MasterShortcut_Type">
+    <xsd:all>
+      <xsd:element name="Icon" type="Icon_Type" minOccurs="0" maxOccurs="1" />
+    </xsd:all>
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="Name" type="xsd:string" />
+    <xsd:attribute name="NameU" type="xsd:string" />
+    <xsd:attribute name="IsCustomName" type="xsd:boolean" />
+    <xsd:attribute name="IsCustomNameU" type="xsd:boolean" />
+    <xsd:attribute name="IconSize" type="xsd:unsignedShort" />
+    <xsd:attribute name="PatternFlags" type="xsd:unsignedShort" />
+    <xsd:attribute name="Prompt" type="xsd:string" />
+    <xsd:attribute name="ShortcutURL" type="xsd:string" />
+    <xsd:attribute name="ShortcutHelp" type="xsd:string" />
+    <xsd:attribute name="AlignName" type="xsd:unsignedShort" />
+    <xsd:attribute name="MasterType" type="xsd:unsignedShort" />
+  </xsd:complexType>
+  <xsd:complexType name="PageContents_Type">
+    <xsd:sequence>
+      <xsd:element name="Shapes" type="Shapes_Type" minOccurs="0" maxOccurs="1" />
+      <xsd:element name="Connects" type="Connects_Type" minOccurs="0"
+                   maxOccurs="1" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="Shapes_Type">
+    <xsd:sequence>
+      <xsd:element name="Shape" type="ShapeSheet_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="Connects_Type">
+    <xsd:sequence>
+      <xsd:element name="Connect" type="Connect_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="Connect_Type">
+    <xsd:attribute name="FromSheet" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="FromCell" type="xsd:string" />
+    <xsd:attribute name="FromPart" type="xsd:int" />
+    <xsd:attribute name="ToSheet" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="ToCell" type="xsd:string" />
+    <xsd:attribute name="ToPart" type="xsd:int" />
+  </xsd:complexType>
+  <xsd:complexType name="Pages_Type">
+    <xsd:sequence>
+      <xsd:element name="Page" type="Page_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="Page_Type">
+    <xsd:all>
+      <xsd:element name="PageSheet" type="PageSheet_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="Rel" type="Rel_Type" minOccurs="1" maxOccurs="1" />
+    </xsd:all>
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="Name" type="xsd:string" />
+    <xsd:attribute name="NameU" type="xsd:string" />
+    <xsd:attribute name="IsCustomName" type="xsd:boolean" />
+    <xsd:attribute name="IsCustomNameU" type="xsd:boolean" />
+    <xsd:attribute name="Background" type="xsd:boolean" />
+    <xsd:attribute name="BackPage" type="xsd:unsignedInt" />
+    <xsd:attribute name="ViewScale" type="xsd:double" />
+    <xsd:attribute name="ViewCenterX" type="xsd:double" />
+    <xsd:attribute name="ViewCenterY" type="xsd:double" />
+    <xsd:attribute name="ReviewerID" type="xsd:unsignedInt" />
+    <xsd:attribute name="AssociatedPage" type="xsd:unsignedInt" />
+  </xsd:complexType>
+  <xsd:complexType name="EventList_Type">
+    <xsd:sequence>
+      <xsd:element name="EventItem" type="EventItem_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="EventItem_Type">
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="Action" type="xsd:unsignedShort" use="required" />
+    <xsd:attribute name="EventCode" type="xsd:unsignedShort" use="required" />
+    <xsd:attribute name="Enabled" type="xsd:boolean" />
+    <xsd:attribute name="Target" type="xsd:string" use="required" />
+    <xsd:attribute name="TargetArgs" type="xsd:string" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="HeaderFooter_Type">
+    <xsd:all>
+      <xsd:element name="HeaderMargin" type="HeaderMargin_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="FooterMargin" type="FooterMargin_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="HeaderLeft" type="HeaderLeft_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="HeaderCenter" type="HeaderCenter_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="HeaderRight" type="HeaderRight_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="FooterLeft" type="FooterLeft_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="FooterCenter" type="FooterCenter_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="FooterRight" type="FooterRight_Type" minOccurs="0" 
+                   maxOccurs="1" />
+      <xsd:element name="HeaderFooterFont" type="HeaderFooterFont_Type" minOccurs="0"
+                   maxOccurs="1" />
+    </xsd:all>
+    <xsd:attribute name="HeaderFooterColor" type="xsd:string" />
+  </xsd:complexType>
+  <xsd:complexType name="HeaderMargin_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:double">
+        <xsd:attribute name="Unit" type="xsd:string" />
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="FooterMargin_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:double">
+        <xsd:attribute name="Unit" type="xsd:string" />
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="HeaderLeft_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="HeaderCenter_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="HeaderRight_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="FooterLeft_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="FooterCenter_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="FooterRight_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string" />
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="HeaderFooterFont_Type">
+    <xsd:attribute name="Height" type="xsd:int" />
+    <xsd:attribute name="Width" type="xsd:int" />
+    <xsd:attribute name="Escapement" type="xsd:int" />
+    <xsd:attribute name="Orientation" type="xsd:int" />
+    <xsd:attribute name="Weight" type="xsd:int" />
+    <xsd:attribute name="Italic" type="xsd:unsignedByte" />
+    <xsd:attribute name="Underline" type="xsd:unsignedByte" />
+    <xsd:attribute name="StrikeOut" type="xsd:unsignedByte" />
+    <xsd:attribute name="CharSet" type="xsd:unsignedByte" />
+    <xsd:attribute name="OutPrecision" type="xsd:unsignedByte" />
+    <xsd:attribute name="ClipPrecision" type="xsd:unsignedByte" />
+    <xsd:attribute name="Quality" type="xsd:unsignedByte" />
+    <xsd:attribute name="PitchAndFamily" type="xsd:unsignedByte" />
+    <xsd:attribute name="FaceName" type="xsd:string" />
+  </xsd:complexType>
+  <xsd:complexType name="DataConnections_Type">
+    <xsd:sequence>
+      <xsd:element name="DataConnection" type="DataConnection_Type" minOccurs="1"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="NextID" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="DataConnection_Type">
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="FileName" type="xsd:string" use="required" />
+    <xsd:attribute name="ConnectionString" type="xsd:string" />
+    <xsd:attribute name="Command" type="xsd:string" />
+    <xsd:attribute name="FriendlyName" type="xsd:string" />
+    <xsd:attribute name="Timeout" type="xsd:unsignedInt" />
+    <xsd:attribute name="AlwaysUseConnectionFile" type="xsd:boolean" />
+  </xsd:complexType>
+  <xsd:complexType name="DataRecordSets_Type">
+    <xsd:sequence>
+      <xsd:element name="DataRecordSet" type="DataRecordSet_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="NextID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="ActiveRecordsetID" type="xsd:unsignedInt" />
+    <xsd:attribute name="DataWindowOrder" type="xsd:string" />
+  </xsd:complexType>
+  <xsd:complexType name="DataRecordSet_Type">
+    <xsd:sequence>
+      <xsd:element name="Rel" type="Rel_Type" minOccurs="1" maxOccurs="1" />
+      <xsd:element name="DataColumns" type="DataColumns_Type" minOccurs="1"
+                   maxOccurs="1" />
+      <xsd:element name="PrimaryKey" type="PrimaryKey_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="RowMap" type="RowMap_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="RefreshConflict" type="RefreshConflict_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="AutoLinkComparison" type="AutoLinkComparison_Type"
+                   minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="ConnectionID" type="xsd:unsignedInt" />
+    <xsd:attribute name="Command" type="xsd:string" />
+    <xsd:attribute name="Options" type="xsd:unsignedInt" />
+    <xsd:attribute name="TimeRefreshed" type="xsd:dateTime" />
+    <xsd:attribute name="NextRowID" type="xsd:unsignedInt" />
+    <xsd:attribute name="Name" type="xsd:string" />
+    <xsd:attribute name="RowOrder" type="xsd:boolean" />
+    <xsd:attribute name="RefreshOverwriteAll" type="xsd:boolean" />
+    <xsd:attribute name="RefreshNoReconciliationUI" type="xsd:boolean" />
+    <xsd:attribute name="RefreshInterval" type="xsd:unsignedInt" />
+    <xsd:attribute name="ReplaceLinks" type="xsd:unsignedInt" />
+    <xsd:attribute name="Checksum" type="xsd:unsignedInt" />
+  </xsd:complexType>
+  <xsd:complexType name="DataColumns_Type">
+    <xsd:sequence>
+      <xsd:element name="DataColumn" type="DataColumn_Type" minOccurs="1"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="SortColumn" type="xsd:string" />
+    <xsd:attribute name="SortAsc" type="xsd:boolean" />
+  </xsd:complexType>
+  <xsd:complexType name="DataColumn_Type">
+    <xsd:attribute name="ColumnNameID" type="xsd:string" use="required" />
+    <xsd:attribute name="Name" type="xsd:string" use="required" />
+    <xsd:attribute name="Label" type="xsd:string" use="required" />
+    <xsd:attribute name="OrigLabel" type="xsd:string" />
+    <xsd:attribute name="LangID" type="xsd:unsignedInt" />
+    <xsd:attribute name="Calendar" type="xsd:unsignedShort" />
+    <xsd:attribute name="DataType" type="xsd:unsignedShort" />
+    <xsd:attribute name="UnitType" type="xsd:string" />
+    <xsd:attribute name="Currency" type="xsd:unsignedShort" />
+    <xsd:attribute name="Degree" type="xsd:unsignedInt" />
+    <xsd:attribute name="DisplayWidth" type="xsd:unsignedInt" />
+    <xsd:attribute name="DisplayOrder" type="xsd:unsignedInt" />
+    <xsd:attribute name="Mapped" type="xsd:boolean" />
+    <xsd:attribute name="Hyperlink" type="xsd:boolean" />
+  </xsd:complexType>
+  <xsd:complexType name="PrimaryKey_Type">
+    <xsd:sequence>
+      <xsd:element name="RowKeyValue" type="RowKeyValue_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="ColumnNameID" type="xsd:string" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="RowKeyValue_Type">
+    <xsd:attribute name="RowID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="Value" type="xsd:string" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="RowMap_Type">
+    <xsd:attribute name="RowID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="PageID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="ShapeID" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="RefreshConflict_Type">
+    <xsd:attribute name="RowID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="ShapeID" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="PageID" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="AutoLinkComparison_Type">
+    <xsd:attribute name="ColumnName" type="xsd:string" use="required" />
+    <xsd:attribute name="ContextType" type="xsd:unsignedInt" use="required" />
+    <xsd:attribute name="ContextTypeLabel" type="xsd:string" />
+  </xsd:complexType>
+  <xsd:complexType name="PublishSettings_Type">
+    <xsd:sequence>
+      <xsd:element name="PublishedPage" type="PublishedPage_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="RefreshableData" type="RefreshableData_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="Comments_Type">
+    <xsd:sequence>
+      <xsd:element name="AuthorList" type="AuthorList_Type" minOccurs="0"
+                   maxOccurs="1" />
+      <xsd:element name="CommentList" type="CommentList_Type" minOccurs="0"
+                   maxOccurs="1" />
+    </xsd:sequence>
+    <xsd:attribute name="ShowCommentTags" type="xsd:boolean" />
+  </xsd:complexType>
+  <xsd:complexType name="AuthorList_Type">
+    <xsd:sequence>
+      <xsd:element name="AuthorEntry" type="AuthorEntry_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="AuthorEntry_Type">
+    <xsd:attribute name="Name" type="xsd:string" />
+    <xsd:attribute name="Initials" type="xsd:string" />
+    <xsd:attribute name="ResolutionID" type="xsd:string" />
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="CommentList_Type">
+    <xsd:sequence>
+      <xsd:element name="CommentEntry" type="CommentEntry_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="CommentEntry_Type">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+        <xsd:attribute name="AuthorID" type="xsd:unsignedInt" use="required" />
+        <xsd:attribute name="PageID" type="xsd:unsignedInt" use="required" />
+        <xsd:attribute name="ShapeID" type="xsd:unsignedInt" />
+        <xsd:attribute name="Date" type="xsd:dateTime" use="required" />
+        <xsd:attribute name="EditDate" type="xsd:dateTime" />
+        <xsd:attribute name="Done" type="xsd:boolean" />
+        <xsd:attribute name="CommentID" type="xsd:unsignedInt" use="required" />
+        <xsd:attribute name="AutoCommentType" type="xsd:unsignedInt" />
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  <xsd:complexType name="PublishedPage_Type">
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="RefreshableData_Type">
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="RefBy_Type">
+    <xsd:attribute name="T" type="xsd:string" use="required" />
+    <xsd:attribute name="ID" type="xsd:unsignedInt" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="Extensions_Type">
+    <xsd:sequence>
+      <xsd:element name="CellDef" type="CellDef_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="FunctionDef" type="FunctionDef_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="SectionDef" type="SectionDef_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="CellDef_Type">
+    <xsd:attribute name="N" type="xsd:string" use="required" />
+    <xsd:attribute name="T" type="xsd:token" use="required" />
+    <xsd:attribute name="F" type="xsd:string" />
+    <xsd:attribute name="IX" type="xsd:unsignedByte" />
+    <xsd:attribute name="S" type="xsd:unsignedByte" />
+  </xsd:complexType>
+  <xsd:complexType name="FunctionDef_Type">
+    <xsd:attribute name="N" type="xsd:string" use="required" />
+  </xsd:complexType>
+  <xsd:complexType name="SectionDef_Type">
+    <xsd:sequence>
+      <xsd:element name="CellDef" type="CellDef_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+      <xsd:element name="RowDef" type="RowDef_Type" minOccurs="0" maxOccurs="1" />
+    </xsd:sequence>
+    <xsd:attribute name="N" type="xsd:string" use="required" />
+    <xsd:attribute name="T" type="xsd:string" />
+    <xsd:attribute name="S" type="xsd:unsignedByte" />
+  </xsd:complexType>
+  <xsd:complexType name="RowDef_Type">
+    <xsd:sequence>
+      <xsd:element name="CellDef" type="CellDef_Type" minOccurs="0"
+                   maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType name="Rel_Type">
+    <xsd:attribute ref="r:id" use="required"/>
+  </xsd:complexType>
+</xsd:schema>
\ No newline at end of file