tho*_*rn̈ 8 xsd xml-namespaces visual-studio visual-studio-2012 fb2
FictionBook(也称为FB2)是一种基于XML的电子书格式.它的架构可以在这里找到:
http://gribuser.ru/xml/fictionbook/2.0/xsd/
但是,当我下载此架构并尝试在Visual Studio 2012中打开它时,我遇到了一堆错误,第一个错误是:前缀''无法映射到为"xml"或"xmlns"保留的命名空间名称.第5行,第118位.E:\ dev\fb2\FictionBook2.xsd.
架构真的无效吗?如果是这样,很多软件如何使用它来验证FB2文件?是否有一种简单的方法来修改架构以使VS快乐?
你唯一需要做的就是xmlns="http://www.w3.org/XML/1998/namespace"从FictionBookLang.xsd中删除,因为那是唯一的罪魁祸首:

该集的作者很可能希望确保xml:lang属性可供人们使用.这不是正确的方法,但它可以在某些情况下起作用.
通常这是以不同方式完成的 如果您的XSD感知XML处理器是"智能"的,那么这样的导入应该像这样进行,即代替
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="FictionBookLang.xsd"/>
Run Code Online (Sandbox Code Playgroud)
它应该是:
<xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
Run Code Online (Sandbox Code Playgroud)
这被称为悬空外部参考; "智能"XSD处理器知道如何将位置解析为众所周知的命名空间(当然,http://www.w3.org/XML/1998/namespace就是其中之一).
在使用悬空导入之后,这就是集合的样子; xml.xsd由处理器自动添加,它应该是此处列出的副本.

换句话说,通常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">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2265 次 |
| 最近记录: |