2

.nu​​spec ファイル内にある次の xml を検証しようとしています。

<?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 またはスキーマの何が問題になっているのでしょうか?

4

3 に答える 3

2

xsd を検証する場合、package 要素はhttp://schemas.microsoft.com/packaging/2010/07/nuspec.xsd名前空間にある必要があります。

そこにある例の大部分には xml 名前空間がないことに注意してください。そのため、独自の用途にのみ使用してください。

于 2011-02-25T18:55:53.643 に答える
1

これが必要だと思います:<package xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd = "http://www.w3.org/2001/XMLSchema">

NuGet.codeplex.comからの必須フィールドに注意してください

以下は私が働いているパッケージの例です:

<?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>
于 2011-02-25T17:16:35.673 に答える
0

Codeplexのソース管理フォルダーからxsdを取得する場合は、文字列"{0}"の出現箇所を"http://schemas.microsoft.com/packaging/2010/07/nuspecに置き換える必要があることに注意してください。 nuspecファイルに適用されたときにxsdが正しく機能するために、「。xsd」。

nuspecファイルのルート要素をhttp://schemas.microsoft.com/packaging/2010/07/nuspec.xsd名前空間内に配置することを忘れないでください。

<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
于 2011-09-19T09:39:17.790 に答える