我知道在 XML 中,如果两个不同的标签具有相同的标签名称,那么为了将它们分开,我们在其前面加上 namespace 以使其唯一。但是当我们说的时候在顶部
<rootElement xmlns:myNameSpace="http://www.myNameSpace.com">
现在,为什么我们有这个 http://www.myNameSpace.com ?这有什么用,除了它是独一无二的。
此外,我正在阅读有关 xslt 的内容,因为它也是一个 XML,所以它将命名空间定义为
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
现在,首先,这个link到底是做什么的?告诉我它对 xml 渲染有何帮助?那么除了唯一性之外,它还有什么用吗?为什么要走到这种地步?如果在 XML 中,我有两个标签之间的冲突,我可以只使用任何两个命名空间,比如 namespace1 和 namespace2 并使用它。
我在这里遗漏了什么吗?
最佳答案
一般来说,XML 命名空间除了唯一标识与其相关联的元素之外没有任何用途。
换句话说,字符串“http://www.myNameSpace.com”如下:
<rootElement xmlns:myNameSpace="http://www.myNameSpace.com">
纯粹是任意的。它不必指向任何地方。此外,所谓的 prefix(在本例中为 myNameSpace,“xmlns:”之后的部分)是任意的,只是“http://www.myNameSpace.com”的简写方式.
话虽如此,有几点保留意见:
1) 命名空间可以帮助构建大型文件中的 XML 数据,例如 OpenXML 格式的 Microsoft Word 文档:
这是典型 OOXML 中存在的命名空间的摘录:
xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
因此,虽然没有内在原因需要单独的命名空间,但它有助于将您的 XML 词汇表划分为有意义的类别。
2)如您所见,任意定义命名空间有一些限制:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
这将元素标识为属于 XSLT namespace 。而且,除此之外,这意味着如此标记的元素被 XSLT 处理器识别为不仅仅是 XML 代码,而且是要执行的 XSLT 指令。
链接“http://www.w3.org/1999/XSL/Transform”指向 XSLT 规范,其中规定了转换 XML 文档的规则。现在,回答您的问题:声明命名空间不会帮助转换。相反,如果您省略 XSLT 代码,XSLT 处理器将无法识别它。
您可以定义命名空间“namespaceA”和“namespaceB”:
xmlns:nsA="namespaceA"
xmlns:nsB="namespaceB"
但是您不能使用它们来转换 XML,除非您只想更改前缀:
xmlns:nsA="http://www.w3.org/1999/XSL/Transform"
这被认为是不好的做法。
关于xml - XML 中命名空间的需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20679790/
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?
我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rubysyntaxquestion:Rational(a,b)andRational.new!(a,b)我正在阅读ruby镐书,我对创建有理数的语法感到困惑。Rational(3,4)*Rational(1,2)产生=>3/8为什么Rational不需要new方法(我还注意到例如我可以在没有new方法的情况下创建字符串)?
我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty
Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba
我需要用任何语言编写一个算法,根据3个因素对数组进行排序。我以度假村为例(如Hipmunk)。假设我想去度假。我想要最便宜的地方、最好的评论和最多的景点。但是,显然我找不到在所有3个中都排名第一的方法。Example(assumingthereare20importantattractions):ResortA:$150/night...98/100infavorablereviews...18of20attractionsResortB:$99/night...85/100infavorablereviews...12of20attractionsResortC:$120/night