0

Schematronで属性の存在を確認しようとしています。

<Layout>
<Pages>
    <Page id="id-001" description="Database Sections">  
    </Page>
</Pages>
<TreeViews>
    <TreeView id="id-001" description="">
    </TreeView>
</TreeViews>

「TreeViewID」がある場合は、「ページID」にすでに存在している必要があります

だから私は私の「ツリービューID」と同じ名前の「ページID」を数えようとしました、それらは> =1でなければなりません:

 <?xml version="1.0" encoding="UTF-8"?>
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            queryBinding="xslt2">

   <sch:pattern name="Vote Count">
      <sch:rule context="Layout/TreeViews/Treeview/@name">
         <sch:report test="count(Layout/Pages/Page[@id=current()]) >= 1">
             min. 1
        </sch:report>    
      </sch:rule>
   </sch:pattern>
</sch:schema>

私は何が間違っているのですか?あなたのhlepをありがとう!

4

1 に答える 1

3

このルールはどうですか:

<iso:pattern id="check IDs">
  <iso:rule context="TreeView">
    <iso:assert test="parent::*/parent::*/Pages/Page/@id = @id">
      TreeViews/TreeView/@id = <iso:value-of select="./@id" /> NOT FOUND in Pages
    </iso:assert>
  </iso:rule>       
</iso:pattern>

お役に立てれば。

于 2012-12-18T18:54:18.337 に答える