2

XSLT 変換が正しくないという問題があります。私の仕事は、XSLT を使用して XML ファイルを RDF ファイルに変換することです。したがって、<rdf:RDF>関連する名前空間を持つノードを XML ドキュメントのルートとして作成する必要があります。出力には 2 つの問題があります。

  1. exclude-result-prefixes が機能していません。
  2. 造形がひどい。たとえば、<rdf:RDF>ノードは XML 宣言の直後にあり、物事の間隔が正しくありません。

ただし、RDF として検証されますしたがって、少なくともその側の私の構文は正しいです。

XSLT:

これが私の XSLT ファイルの外観です (他のテンプレートは省略されていますが、必要に応じて完全なコードを提供できます)。関連する可能性があると私が考えることができる唯一のことは、その後に来るテンプレートで、ノードのコードを直接入力する代わりに使用<xsl:element>していることです。<xsl:attribute>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
    exclude-result-prefixes="fD"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="/">
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData/"
    xml:base="http://www.alunos.dcc.fc.up.pt/~up090316041/footData/">
    <rdfs:Class rdf:ID="Equipa"/>
    <rdfs:Class rdf:ID="Treinador"/>
    <rdfs:Class rdf:ID="Jogador"/>
    <xsl:apply-templates/>
</rdf:RDF>
</xsl:template>
</xsl:stylesheet>

生成されたRDF

<?xml version="1.0" encoding="UTF-8"?><rdf:RDF xml:base="http://www.alunos.dcc.fc.up.pt/~up090316041/footData/" xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:ID="Equipa"/>
<rdfs:Class rdf:ID="Treinador"/>
<rdfs:Class rdf:ID="Jogador"/>
  <rdf:Description rdf:about="ENG_M_UTD">
<rdf:type>Equipa</rdf:type>
<fD:nome xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Manchester United</fD:nome>
<fD:estadio xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Old Trafford</fD:estadio>
<fD:pais xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Inglaterra</fD:pais>
</rdf:Description>
<rdf:Description rdf:about="POR_NANI">
<rdf:type>Jogador</rdf:type>
<fD:nome xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Nani</fD:nome>
<fD:pais xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Portugal</fD:pais>
<fD:equipa xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData" resource="ENG_M_UTD"/>
</rdf:Description>
<rdf:Description rdf:about="SPA_DE_GEA">
<rdf:type>Jogador</rdf:type>
<fD:nome xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">David de Gea</fD:nome>
<fD:pais xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Espanha</fD:pais>
<fD:equipa xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData" resource="ENG_M_UTD"/>
</rdf:Description>

<rdf:Description rdf:about="POR_PORTO">
<rdf:type>Equipa</rdf:type>
<fD:nome xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">FC Porto</fD:nome>
<fD:estadio xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Estádio do Dragão</fD:estadio>
<fD:pais xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Portugal</fD:pais>
</rdf:Description>
<rdf:Description rdf:about="COL_JAMES">
<rdf:type>Jogador</rdf:type>
<fD:nome xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">James Rodríguez</fD:nome>
<fD:pais xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData">Colombia</fD:pais>
<fD:equipa xmlns:fD="http://www.alunos.dcc.fc.up.pt/~up090316041/footData" resource="POR_PORTO"/>
</rdf:Description>






</rdf:RDF>
4

1 に答える 1

0

正しくインデントするには、Eclipse の実行設定を変更する必要がありました。

于 2013-01-30T16:51:02.040 に答える