gpt4 book ai didi

xml - XSD 中的 elementFormDefault 有什么作用?

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

elementFormDefault 有什么作用,应该在什么时候使用?

所以我找到了 elementFormDefault 值的一些定义:

qualified - elements and attributes are in the targetNamespace of the schema

unqualified - elements and attributes do not have a namespace

因此,根据该定义,我认为如果模式设置为合格,那么为什么必须在类型前加上命名空间?在什么情况下,您甚至会让其中一组不合格?我尝试了谷歌搜索,但我得到的只是几个极难理解的 W3C 页面。

这是我现在正在处理的文件,当我将 targetNamespace 声明为与xmlns:目标?

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:target="http://www.levijackson.net/web340/ns"
targetNamespace="http://www.levijackson.net/web340/ns"
elementFormDefault="qualified">
<element name="assignments">
<complexType>
<sequence>
<element name="assignments" type="target:TypeAssignments"
minOccurs="1" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<complexType name="TypeAssignments">
<sequence>
<element name="assignment" type="target:assignmentInfo"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="assignmentInfo">
<sequence>
<element name="name" type="string"/>
<element name="page" type="target:TypePage"/>
<element name="file" type="target:TypeFile"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="id" type="string" use="required"/>
</complexType>
<simpleType name="TypePage">
<restriction base="integer">
<minInclusive value="50" />
<maxInclusive value="498" />
</restriction>
</simpleType>
<simpleType name="TypeFile">
<restriction base="string">
<enumeration value=".xml" />
<enumeration value=".dtd" />
<enumeration value=".xsd" />
</restriction>
</simpleType>
</schema>

最佳答案

ElementFormDefault 与模式中类型的命名空间无关,它与符合模式的 XML 文档中的元素的命名空间有关。

这是规范的相关部分:

Element Declaration Schema

Component Property {target namespace}
Representation If form is present and its ·actual value· is qualified,
or if form is absent and the ·actual value· of
elementFormDefault on the <schema> ancestor is qualified,
then the ·actual value· of the targetNamespace [attribute]
of the parent <schema> element information item, or
·absent· if there is none, otherwise ·absent·.

这意味着如果 elementFormDefault 是“合格的”或者元素在模式中明确声明为具有 form= “合格”。

例如:如果elementFormDefault是不合格的——

<element name="name" type="string" form="qualified"></element>
<element name="page" type="target:TypePage"></element>

将期望“name”元素位于 targetNamespace 中,而“page”元素位于 null 命名空间中。

为了避免您必须在每个元素声明上放置 form="qualified",声明 elementFormDefault="qualified"意味着 targetNamespace 适用于每个元素,除非通过在元素声明上放置 form="unqualified"来覆盖。

关于xml - XSD 中的 elementFormDefault 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1463138/

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