Schematron无法验证XML?

时间:2014-01-09 10:29:24

标签: xml xsd xml-validation schematron

我正在使用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,但它会引发错误。为什么呢?

1 个答案:

答案 0 :(得分:0)

正如nos在评论中所说,这是我的错误,因为我在断言元素中做了拼写错误因此它没有得到验证。从assert中删除不必要的数字解决了这个问题。