首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nuspec.xsd验证.nuspec文件在'package‘上失败

使用nuspec.xsd验证.nuspec文件在'package‘上失败
EN

Stack Overflow用户
提问于 2011-02-25 23:51:34
回答 3查看 2.3K关注 0票数 2

我正在尝试验证以下xml,它位于一个.nuspec文件中:

代码语言:javascript
复制
<?xml version='1.0'?>
<package>
  <metadata>
    <id>nuspec_test</id>
    <version>1.2.3</version>
    <authors>Author Name</authors>
    <description>test_xml_document</description>
  </metadata>
</package>

对于验证,我使用位于以下位置的nuspec.xsd文件:http://nuget.codeplex.com/SourceControl/changeset/view/0881f2d55e70#src%2fCore%2fAuthoring%2fnuspec.xsd

我已经使用.Net的System.Xml和Ruby的Nokogiri运行了验证。这两个代码都显示验证失败,并显示以下内容:

来自诺科吉里:Element 'package': No matching global declaration available for the validation root.

来自System.XML:Data at the root level is invalid. Line 1, position 1.

这个xml或模式有什么问题,会导致验证错误?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-02-26 02:55:54

如果希望验证该xsd,那么package元素应该在http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd名称空间中。

请注意,大多数示例都没有xml名称空间,因此仅供您自己使用。

票数 2
EN

Stack Overflow用户

发布于 2011-02-26 01:16:36

我认为你需要这个:

请注意来自NuGet.codeplex.com的requied fields

下面是一个我正在运行的包的示例:

代码语言:javascript
复制
<?xml version="1.0"?>
<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <metadata>
    <id>SidePOP</id>
    <version>0.0.1.44</version>
    <authors>Rob Reynolds, Tim Hibbard</authors>
    <owners>Rob Reynolds</owners>
    <summary>SidePOP gives your app the ability to receive email</summary>
    <description>SidePOP allows your application the ability to receive email</description>
    <projectUrl>http://sidepop.googlecode.com</projectUrl>
    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <tags>email</tags>
    <!--<iconUrl>32x32.png</iconUrl>-->
    <dependencies>
      <dependency id="log4net" version="1.2.10" />
    </dependencies>
  </metadata>
</package>
票数 1
EN

Stack Overflow用户

发布于 2011-09-19 17:39:18

请注意,如果您从Codeplex源控制文件夹中获取xsd,则必须将出现的任何字符串"{0}“替换为"http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd”,以便xsd在应用于您的nuspec文件时能够正常工作。

不要忘记将nuspec文件的根元素放在http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd名称空间中:

代码语言:javascript
复制
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5119326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档