gpt4 book ai didi

visual-studio - 为什么Visual Studio不喜欢这种XML模式? (前缀 ''不能映射到为 "xml"或 "xmlns"保留的 namespace 名称)

转载 作者:行者123 更新时间:2023-12-04 08:10:55 24 4
gpt4 key购买 nike

FictionBook(也称为FB2)是一种基于XML的电子书格式。它的模式可以在这里找到:

http://gribuser.ru/xml/fictionbook/2.0/xsd/

但是,当我下载此架构并尝试在Visual Studio 2012中打开它时,出现了很多错误,第一个错误是:Prefix不能映射到为“xml”或“xmlns”保留的 namespace 名称。第5行,位置118。E:\dev\fb2\FictionBook2.xsd。

模式真的无效吗?如果是这样,那么很多软件怎么可能使用它来验证FB2文件?有一种简单的方法可以修改架构以使VS满意吗?

最佳答案

您唯一需要做的就是从 FictionBookLang.xsd 中删除xmlns="http://www.w3.org/XML/1998/namespace",因为这是唯一的罪魁祸首:

该集合的作者最有可能希望确保xml:lang属性可供人们使用。这不是正确的方法,但是在某些情况下仍然可以使用。

通常,这是不同的方式。如果您的支持XSD的XML处理器是“智能”的,则应这样进行导入,即,而不是

<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="FictionBookLang.xsd"/>

它应该是:
<xs:import namespace="http://www.w3.org/XML/1998/namespace"/>

这称为悬空的外部引用。 “智能” XSD处理器知道如何将位置解析为众所周知的 namespace (当然, http://www.w3.org/XML/1998/namespace是其中之一)。

使用悬挂的导入后,该集的外观将是这样的; xml.xsd由处理器自动添加,它应该是列出的 here的副本。

换句话说,通常FictionBookLand.xsd甚至都不应成为编译的一部分。特别是,如果将这些XSD与正确引用xml:lang属性的其他XSD结合使用,则将出现重复的属性声明错误。

无论如何,如果您仅删除所述的属性,则所有属性都将变为有效;从那里,您可以构建示例XML-否则XSD很好。我生成的示例非常庞大,我只发布了前几行...
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<FictionBook xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:genre="http://www.gribuser.ru/xml/fictionbook/2.0/genres" xmlns="http://www.gribuser.ru/xml/fictionbook/2.0">
<stylesheet type="type1">stylesheet1</stylesheet>
<description>
<title-info>
<genre match="100">architecture</genre>
<author>
<first-name xml:lang="en">first-name1</first-name>
<middle-name xml:lang="en">middle-name1</middle-name>
<last-name xml:lang="en">last-name1</last-name>
<nickname xml:lang="en">nickname1</nickname>
<home-page>home-page1</home-page>
<home-page>home-page1</home-page>
<email>email1</email>
<email>email1</email>
</author>
<book-title xml:lang="en">book-title1</book-title>
<annotation id="ID1" xml:lang="en">

关于visual-studio - 为什么Visual Studio不喜欢这种XML模式? (前缀 ''不能映射到为 "xml"或 "xmlns"保留的 namespace 名称),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16618492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com