当前位置: 首页 > 知识库问答 >
问题:

xsd文件中的本地属性声明不会验证xml文件中的相应属性,有什么原因吗?

徐嘉勋
2023-03-14

我有一个xml文件和一个xsd文件正在成功验证xml。
我想给xml中的元素添加一个属性,并相应地更改xsd,这样验证仍然会成功通过。

我有一个通过验证的xml文件
我为一个元素类型添加了一个属性。属性名称为“letterspacing”,其值假定为字符串类型
我尝试在本地为xsd中的元素定义属性,名称和类型与xml中显示的名称和值相对应,但没有名称空间(如果可能的话,我不想包括名称空间),也没有对其他地方定义的属性的引用
xsd中定义的所有其他元素和属性都通过了验证,即使是在其他元素上定义的其他本地属性,也没有命名空间或引用
我找不到任何不支持该属性的原因,但我可能遗漏了一些内容。

xsd:

<xs:schema ...>
    ...
    <xs:element name="style">
        ...
        <xs:attribute name="letterspacing" type="xs:string" />
    </xs:element>
</xs:schema>

xml:

<tt:style tts:backgroundColor="#aaaaaaff" xml:id="styPar0" letterspacing="8px"/>


我认为这个上下文已经足够了,因为没有这个属性验证工作正常,我只想知道如何在新的本地属性中添加支持。


我希望xsd中新属性的定义将验证xml中的新属性,但我得到"ERROR: Element'{http://www.w3.org/ns/ttml}style',属性'lettersping':属性'lettersping'是不允许的。"

共有1个答案

柳杰
2023-03-14

也许您在您的架构中定义了属性FormDefault="合格"?如果是这样,这意味着信距属性必须具有tts前缀,类似于您的背景颜色属性。

如果希望它不固定,可以尝试将其添加到属性声明中,这将覆盖attributeFormDefault:

    <xs:element name="style">
        ...
        <xs:attribute name="letterspacing" type="xs:string" form="unqualified" />
    </xs:element>
 类似资料:
  • 我在xsd中有一个问题,我不知道为什么stackoverflow阻止我问。我想有一个看起来像这样的标签 但我还想使用验证来验证这一点。 在xsd中,我有 我可以单独通过语法测试,但当我将验证和xml文件放在一起时,我不断收到错误,说order属性不允许出现在这个标记中。我想使用这个order属性,因为它是必需的。如果有人能告诉我怎么做!非常感谢!

  • 问题内容: 我为该标题表示歉意。我找不到更好的方法来解释这种情况。 我使用URL http://www.exampledepot.com/egs/java.util/Props.html中所述的Property类加载属性文件。 我的问题是我可以在该属性文件中使用属性吗? 例: test.properties 其他语法有可能吗? 谢谢 问题答案: 以前从未见过。您当然 可以 制作自己的预处理器。只要

  • 我需要将双变量传输到本地化文件,如果我写%d,我只能传递int,但我需要传递双变量

  • 主要内容:什么是文件?,文件的属性什么是文件? 文件可以定义为一个存储记录序列的数据结构。 文件存储在文件系统中,该文件系统可能存在于磁盘或主存储器中。 文件可以是简单的(纯文本)或复杂的(特殊格式)。 文件的集合被称为目录。 在不同级别的目录集合被称为文件系统。 文件的属性 常见的文件属性如下所示 编号 属性 描述 1 名称 每个文件都包含文件在文件系统中被识别的名称。 同一目录中不能有两个同名的文件。 2 标识符 每个文件都有

  • 如何决定projectkey?我的意思是我们在哪里可以找到我们的<代码>。Net,< code>plsql项目? 注意-我是这些声纳的新手,正在尝试在我的组织中自己设置所有这些。