From 7e006da63c0e393590a82bb457c6f4516e987e02 Mon Sep 17 00:00:00 2001 From: mrward <ward.matt@gmail.com> Date: Sun, 20 Feb 2011 11:48:55 +0000 Subject: [PATCH] Add NuGet nuspec XML schema. --- data/schemas/nuspec.xsd | 58 +++++++++++++++++++++++++++++++++++++++++ data/schemas/readme.txt | 6 +++++ src/Setup/Files.wxs | 3 +++ src/Setup/Setup.wxs | 1 + 4 files changed, 68 insertions(+) create mode 100644 data/schemas/nuspec.xsd diff --git a/data/schemas/nuspec.xsd b/data/schemas/nuspec.xsd new file mode 100644 index 0000000000..bdab468847 --- /dev/null +++ b/data/schemas/nuspec.xsd @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="utf-8"?> +<xs:schema id="nuspec" + targetNamespace="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" + elementFormDefault="qualified" + xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" + xmlns:mstns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd" + xmlns:xs="http://www.w3.org/2001/XMLSchema" +> + <xs:element name="package"> + <xs:complexType> + <xs:sequence> + <xs:element name="metadata" maxOccurs="1" minOccurs="1"> + <xs:complexType> + <xs:all> + <xs:element name="id" maxOccurs="1" minOccurs="1" type="xs:string" /> + <xs:element name="version" maxOccurs="1" minOccurs="1" type="xs:string" /> + <xs:element name="title" maxOccurs="1" minOccurs="0" type="xs:string" /> + <xs:element name="authors" maxOccurs="1" minOccurs="1" type="xs:string" /> + <xs:element name="owners" maxOccurs="1" minOccurs="0" type="xs:string" /> + <xs:element name="licenseUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" /> + <xs:element name="projectUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" /> + <xs:element name="iconUrl" maxOccurs="1" minOccurs="0" type="xs:anyURI" /> + <xs:element name="requireLicenseAcceptance" maxOccurs="1" minOccurs="0" type="xs:boolean" /> + <xs:element name="description" maxOccurs="1" minOccurs="1" type="xs:string" /> + <xs:element name="summary" maxOccurs="1" minOccurs="0" type="xs:string" /> + <xs:element name="language" maxOccurs="1" minOccurs="0" type="xs:string" default="en-US" /> + <xs:element name="tags" maxOccurs="1" minOccurs="0" type="xs:string" /> + <xs:element name="dependencies" maxOccurs="1" minOccurs="0"> + <xs:complexType> + <xs:sequence> + <xs:element name="dependency" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="id" type="xs:string" use="required" /> + <xs:attribute name="version" type="xs:string" use="optional" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:all> + </xs:complexType> + </xs:element> + <xs:element name="files" minOccurs="0" maxOccurs="1"> + <xs:complexType> + <xs:sequence> + <xs:element name="file" minOccurs="1" maxOccurs="unbounded"> + <xs:complexType> + <xs:attribute name="src" use="required" type="xs:string" /> + <xs:attribute name="target" use="optional" type="xs:string" /> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/data/schemas/readme.txt b/data/schemas/readme.txt index d187000482..896defab4e 100644 --- a/data/schemas/readme.txt +++ b/data/schemas/readme.txt @@ -27,6 +27,12 @@ NAnt 0.85 schema. http://nant.sourceforge.net/release/0.85/nant.xsd GNU General Public License. +nuspec.xsd +---------- + +NuGet 1.1 schema +Apache license 2.0 (http://nuget.codeplex.com/license) + WiX schemas ----------- diff --git a/src/Setup/Files.wxs b/src/Setup/Files.wxs index d774202d79..eb5d6281ee 100644 --- a/src/Setup/Files.wxs +++ b/src/Setup/Files.wxs @@ -667,6 +667,9 @@ <Component Guid="CA5C2E97-D332-4FA3-8782-50A3FC09FAC7" Id="WixGamingSchema" DiskId="1"> <File Source="..\..\data\schemas\gaming.xsd" Name="gaming.xsd" Id="schemas.wix.gaming.xsd" KeyPath="yes" /> </Component> + <Component Id="NuGetNuspecSchema" Guid="D45BFB38-1F09-48C2-B5E1-F1B1F073E4D1" DiskId="1"> + <File Id="nuspec.xsd" Name="nuspec.xsd" Source="..\..\data\schemas\nuspec.xsd" KeyPath="yes" /> + </Component> </Directory> <Directory Id="TemplatesFolder" Name="templates"> <Directory Id="FileTemplatesFolder" Name="file"> diff --git a/src/Setup/Setup.wxs b/src/Setup/Setup.wxs index 2e8d00f73b..074f22fd8d 100644 --- a/src/Setup/Setup.wxs +++ b/src/Setup/Setup.wxs @@ -508,6 +508,7 @@ <ComponentRef Id="ITextSharpDll"/> <ComponentRef Id="NuGetCoreDll"/> + <ComponentRef Id="NuGetNuspecSchema"/> <ComponentRef Id="NuGetLicenseTxt"/> <ComponentRef Id="PackageManagementAddin"/> <ComponentRef Id="PackageManagementDll"/>