当路径包含哈希(#)

时间:2019-11-16 02:13:56

标签: c# xml visual-studio xsd

我将C#项目存储在名为“ C#”的文件夹下。但是,我发现将XML文件及其随附的架构存储在此文件夹下时,Visual Studio无法找到指定给noNamespaceSchemaLocation的文件。相反,它将查找名称包含哈希的文件夹的父文件夹。

例如,给出以下XML和架构

<!-- XMLFile1.xml -->
<?xml version="1.0" encoding="utf-8" ?>
<Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XMLSchema1.xsd" bar="bar"/>
<!-- XMLSchema1.xsd -->
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="XMLSchema1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Foo">
    <xs:complexType>
      <xs:attribute name="bar" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

存储在C:\ Programming \ C#\ Project \中,Visual Studio会抱怨XMLSchema1.xsd文件在C:\ Programming下不存在。但是,如果您指定xsd的绝对路径,或者只是将项目移出C#文件夹,它就可以正常工作。

此行为是怎么回事?或者更确切地说,是否有其他方法可以解决此问题而不必将文件移动到其他位置?通过一些研究,这里出现的问题可能是#被认为是fragment identifier;这都很有趣,但是理想情况下,我想以某种方式表示我的#应该按原样阅读。由于这是一个开源项目,所以我不能对我要保存文件的位置进行任何绝对引用。

0 个答案:

没有答案