我正在使用Oxygen来针对Schematron验证我的XML。由于某种原因(我没有看到我的错误在哪里)XML没有得到验证/ Oxygen抛出错误。为什么呢?
这是我的XML文本:
<Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://mappings.f4f.com/F4FXML/Schemas/v5/financial.xsd">
<EnvelopeHeader>
<SchemaVersion>5.1</SchemaVersion>
<EnvelopeCreated>20140108</EnvelopeCreated>
<EnvelopeTrackingID>1746978</EnvelopeTrackingID>
<EnvelopeRevisionNumber>1</EnvelopeRevisionNumber>
<SourcePartnerID>UK0000001088</SourcePartnerID>
<SourceDivisionID>UK0000001088</SourceDivisionID>
<DestinationPartnerID>ang</DestinationPartnerID>
<DestinationDivisionID>9725652</DestinationDivisionID>
<TestIndicator>True</TestIndicator>
</EnvelopeHeader>
</Envelope>
我写的Schematron看起来像这样:
<?xml version="1.0"?>
<sch:schema xmlns:sch="http://www.ascc.net/xml/schematron">
<sch:pattern name="ValidateDocument">
<sch:rule context="Envelope/EnvelopeHeader">
<sch:assert test="EnvelopeTrackingID = 174697888"></sch:assert>
</sch:rule>
</sch:pattern>
</sch:schema>
这是一个非常基本的Schematron,但它会引发错误。为什么呢?
答案 0 :(得分:0)
正如nos在评论中所说,这是我的错误,因为我在断言元素中做了拼写错误因此它没有得到验证。从assert中删除不必要的数字解决了这个问题。