gpt4 book ai didi

xml - 尝试连接具有 Xinclude 属性的 XML 文件 xml :base error

转载 作者:数据小太阳 更新时间:2023-10-29 01:50:12 26 4
gpt4 key购买 nike

如果我没有通过 Google 搜索进入 Oblivion,我就不会在这里。我有以下问题:我有一个 XML 架构、3 个单个 XML 文档和一个链接所有其他 3 个的 XML 文档。我遇到以下错误,我不明白为什么。

E [Xerces] cvc-complex-type.3.2.2:属性“xml:base”不允许出现在元素“SoftwareRequirementsDocument”中。

我已经阅读了很多来自 Google 的论坛帖子,其中有人遇到了类似的问题,但他们的修复都无法帮助我。我将发布我的架构、要连接的 1 个 XML 文档以及带有 XInclude 的 XML 文档。我将发布每个文档的开头,因为这是需要的。

这是 NotionalSchema2.xsd:

<xsd:element name="ProjectLifecycleDocuments" type="ProjectLifecycleDocumentsType"/>
<xsd:complexType name="ProjectLifecycleDocumentsType">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="Team"/>
<xsd:element ref="SoftwareRequirementsDocument"/>
<xsd:element ref="UseCaseDocument"/>
<xsd:element ref="TestCaseDocument"/>
</xsd:choice>
<xsd:attribute name="id" use="required" type="xsd:ID"/>
</xsd:complexType>

<xsd:element name="SoftwareRequirementsDocument" type="SoftwareRequirementsDocumentType"/>
<xsd:complexType name="SoftwareRequirementsDocumentType">
<xsd:sequence>
<xsd:element ref="Section" maxOccurs="unbounded"/>

<!-- Other global elements to be referenced here. -->
</xsd:sequence>
<xsd:attribute name="projectName" use="required" type="xsd:string"/>
<!--<xsd:attribute name="id" use="required" type="xsd:ID"/>-->
</xsd:complexType>

这是我的 NotionalSRS2.xml:

<SoftwareRequirementsDocument projectName="Lifecycle Documents with Requirements  
Tracking" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="NotionalSchema2.xsd"
xmlns:xx="http://apache.org/xml/features/xinclude/fixup-base-uris">

<Section id="RQ1.0">

<Title>Introduction</Title>
<Para>The Software Requirements Specification details the extent of NUWC’s Lifecycle Project Manager. The product’s main feature is it’s ability to create and manage lifecycle documents using a graphical user interface. The lifecycle documents will be organized and exported using an XML Schema. This can be accomplished by a user who has no knowledge of the XML language. This document will review all the basic functionality required for a user to edit, create, and manage lifecycle projects.
</Para>
</Section>

<Section id="RQ1.1">
<Title>Purpose</Title>
<Para> To provide a detailed description of how the product will produce it’s lifecycle documents as well as edit and export them. It also overviews the basic functional requirements requested by the customer.
</Para>
</Section>

这是我使用 XInclude 的文件,ProjectLifecycleDocuments.xml:

<ProjectLifecycleDocuments id="PL1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-     
instance" xmlns:xi="http://www.w3.org/2001/XInclude"
xsi:noNamespaceSchemaLocation="NotionalSchema2.xsd">
<xi:include href="NotionalSRS2.xml"/>

</ProjectLifecycleDocuments>

现在我在搜索这个错误时阅读了很多关于命名空间的内容,但我无法清楚地了解我哪里出错了。

如果您能为我指出正确的方向,说明为什么会发生此错误以及我该如何解决它,那就太好了。

最佳答案

xml:base 属性(W3C XML Base 由 XInclude 添加以符合规范。参见:http://xerces.apache.org/xerces2-j/faq-xinclude.html#faq-3

常见问题解答提出了两种解决方案。其中之一要求您在运行解析器时通过设置一项功能来禁用 xml:base 属性的插入。另一个是配置您的模式以允许包含类型中的 xml:base 属性,您可以通过在您的模式中导入 XML XSD 来实现:

<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd" />

然后使用对 xml:base 的引用声明属性:

<xsd:complexType name="SoftwareRequirementsDocumentType">
<xsd:sequence> ... </xsd:sequence>
<xsd:attribute name="projectName" use="required" type="xsd:string"/>
<xsd:attribute ref="xml:base"/>
...
</xsd:complexType>

关于xml - 尝试连接具有 Xinclude 属性的 XML 文件 xml :base error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22774425/

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