【发布时间】:2020-06-03 08:06:15
【问题描述】:
我是 xml 新手,我很难理解以下语句中发生的事情。 Schematron 文件来自https://schemas.wmo.int/iwxxm/3.0.0/rule/iwxxm.sch
<sch:rule context="//*[contains(name(),'MeteorologicalAerodromeTrendForecast')]/iwxxm:weather">
<sch:assert test="@xlink:href = document('codes.wmo.int-49-2-AerodromePresentOrForecastWeather.rdf')/rdf:RDF/*/skos:member/*/@*[local-name()='about'] or @nilReason">
MeteorologicalAerodromeTrendForecast iwxxm:weather elements should be a member of http://codes.wmo.int/49-2/AerodromePresentOrForecastWeather
</sch:assert>
</sch:rule>
我知道有一个检查元素iwxxm:weather的规则,但我无法理解测试条件。谁能给我解释一下?对于什么值,测试将通过。
测试在 xml 中的一行失败
<iwxxm:MeteorologicalAerodromeForecast gml:id="uuid.c42e9861-aed6-449f-b4cd-4789e96464d5" cloudAndVisibilityOK="false">
<iwxxm:prevailingVisibility uom="m">350</iwxxm:prevailingVisibility>
<iwxxm:surfaceWind>
<iwxxm:AerodromeSurfaceWindForecast variableWindDirection="false">
<iwxxm:meanWindDirection uom="deg">240</iwxxm:meanWindDirection>
<iwxxm:meanWindSpeed uom="[kn_i]">8</iwxxm:meanWindSpeed>
</iwxxm:AerodromeSurfaceWindForecast>
</iwxxm:surfaceWind>
Here ----> <iwxxm:weather xlink:href="http://codes.wmo.int/49-2/AerodromePresentOrForecastWeather/_RA"/>
<iwxxm:cloud>
谢谢
【问题讨论】:
-
将
contains(name(),'MeteorologicalAerodromeTrendForecast')更改为contains(local-name(),'MeteorologicalAerodromeTrendForecast')。 -
Schematron 文件来自schemas.wmo.int/iwxxm/3.0.0/rule/iwxxm.sch,我无法更改该文件。我正在根据这个 schematron 文件验证我的文件并收到这些错误。
标签: xml xslt xsd schema schematron