学校のクラスの生徒向けのデータベースアプリケーションがあります。1つのパッケージで大量のデータをユーザーインターフェイスに送信します。複雑なXMLをアセンブルするには、複数のデータをXMLとしてフェッチしてから、それらを組み合わせる必要があります。
XSLTを使用してSQLJOINに似た何かを実行する方法を見つけようとしています。たとえば、次の2つのXMLドキュメントがあるとします。
<Xml>
<Classes>
<Class Name="BIOLOGY101" ClassId="11"/>
<Class Name="PHYSICS101" ClassId="13"/>
<Class Name="CALCULUS101" ClassId="17"/>
<Class Name="BIOLOGY101" ClassId="19"/>
</Classes>
</Xml>
<Xml>
<Students>
<Student Name="Bob Johnson" ClassId="11"/>
<Student Name="Bob Johnson" ClassId="17"/>
<Student Name="Bob Johnson" ClassId="19"/>
<Student Name="Joe Jackson" ClassId="11"/>
<Student Name="Joe Jackson" ClassId="13"/>
<Student Name="Joe Jackson" ClassId="17"/>
<Student Name="Rick Robertson" ClassId="13"/>
<Student Name="Rick Robertson" ClassId="17"/>
<Student Name="Rick Robertson" ClassId="19"/>
</Students>
</Xml>
これを生成するために、単一のXSLTを介してそれらを実行したいと思います。
<Xml>
<Classes>
<Class Name="BIOLOGY101" ClassId="11">
<Student Name="Bob Johnson"/>
<Student Name="Joe Jackson"/>
</Class>
<Class Name="PHYSICS101" ClassId="13">
<Student Name="Joe Jackson"/>
<Student Name="Rick Robertson"/>
</Class>
<Class Name="CALCULUS101" ClassId="17">
<Student Name="Rick Robertson" "/>
<Student Name="Joe Jackson"/>
<Student Name="Bob Johnson"/>
</Class>
<Class Name="BIOLOGY101" ClassId="19">
<Student Name="Bob Johnson"/>
<Student Name="Rick Robertson" />
</Class>
</Classes>
</Xml>
<Student>ノードからClassId属性を省略したことに注意してください。
処理が簡単になる場合は、2つのXMLドキュメントを1つのドキュメントにまとめてXSLTに渡すことができます。
このデータはデータベースからのものであるため、さまざまなXMLドキュメントに参加します。クラスを学校に、成績を生徒に、またはアクティビティを学校に参加させる場合があります。ただし、これらはすべて同じパターンに従います。子ノードの数値属性は、親ノードの数値属性に対応します。