gpt4 book ai didi

xml - 允许任何具有定义前缀的属性

转载 作者:行者123 更新时间:2023-12-04 17:05:56 27 4
gpt4 key购买 nike

我正在研究 OFMX,一种基于 AIXM 的 XML 交换格式。该架构正确地验证了公开可用的文件,但是,当内部使用 OFMX 时,一些不属于该架构的属性正在使用中。

这是一个简单有效的 OFMX 文件:

<?xml version="1.0" encoding="UTF-8"?>
<OFMX-Snapshot xmlns:xsi="http://schema.openflightmaps.org/0/OFMX-Snapshot.xsd" version="0" origin="rubygem aixm-0.3.9" namespace="daf19610-f43b-4db3-80b7-602d9083dc32" created="2020-03-03T10:25:18+01:00" effective="2020-02-27T00:00:00+01:00">
<Ahp source="LF|AD|AD-2.LFBA|2020-02-27|17">
<AhpUid region="LF">
<codeId>LFBA</codeId>
</AhpUid>
<OrgUid region="LF">
<txtName>FRANCE</txtName>
</OrgUid>
<txtName>AGEN LA GARENNE</txtName>
<codeIcao>LFBA</codeIcao>
<codeType>AD</codeType>
<geoLat>44.17472222N</geoLat>
<geoLong>000.59055556E</geoLong>
<codeDatum>WGE</codeDatum>
<valElev>204</valElev>
<uomDistVer>FT</uomDistVer>
<valMagVar>0.0</valMagVar>
</Ahp>
</OFMX-Snapshot>

为了加快速度,非公共(public)(本地)处理可能会添加诸如 dbid 之类的属性。 :

<Ahp source="LF|AD|AD-2.LFBA|2020-02-27|17" dbid="1234">

我不想用这种非公共(public)属性定义污染模式,因此我正在寻找一种微创方式来允许它们。

允许任何带有前缀下划线的属性,如 _dbid将是一个解决方案,但 AFAIK,不可能在架构中定义通配符属性。

有没有替代方案,例如本地命名空间,如 local:dbid也许和 anyAttribute 一起对根元素进行尽可能少的修改?

最佳答案

在 XML 中执行此操作的正确方法是将属性放在命名空间中,将其写为 db:id="1234"带有 db 的命名空间声明字首。

然后可以编写模式以允许(a)特定 namespace 中的任何属性,或(b)使用 xs:anyAttribute 的任何 namespace 中的任何属性。带有适当的通配符 namespace属性,例如namespace="##other" .

如果要以这种方式使所有元素声明都可扩展,通常的方法是通过限制从包含通配符的类型派生所有元素类型。

关于xml - 允许任何具有定义前缀的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60618085/

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