2016-09-19 9 views
4

私たちはApache Batikを使用してSVGファイルをレンダリングしています。セキュリティ上の理由から、すべてのURLはHTTPに変換されます。要求:https://www.w3.org/2000/svg見つかった:http://www.w3.org/2000/svg

今、SVGファイルをレンダリングするときに、この問題が発生します。

  • オリジナルSVGは次のとおりです。

    svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" 
    
  • 変換されたSVGは、次のとおりです。

    svg xmlns=\"https://www.w3.org/2000/svg\" xmlns:xlink=\"https://www.w3.org/1999/xlink\" 
    

だから、私は、Java、ない良いからDhttps.protocolsパラメータを指定してみました。私はこれのソースコードを掘り下げています。

+2

"セキュリティ上の理由から、すべてのURLがhttpに変換されています"あなたは冗談でしょうか?自分で管理しているURLだけを「変換」することはできますが、httpsをサポートしていない場合は他の人のURLを変換することはできません。この場合、名前空間URLはデータの検索には使用されません(便宜上、名前空間に関連するものがURLにホストされていますが、必要ではないため)。 –

+3

xmlns属性内の文字列は**実際ではありませんURL **パーサーは、XML要素の名前空間を識別できるように、あらかじめ定義された定数です。あなたはそれらを変更すべきではありません。 –

+0

(最初の文で "to HTTP"の代わりに "to HTTPS"を意味すると仮定します) – unor

答えて

9

名前空間定義のURLを変更しないでください。これらは、xmlnsで始まり、オプションで:が続き、より詳細な名前が続く属性です。

SVGの場合、名前空間はhttp://www.w3.org/2000/svgでなければなりません。the specificationを参照してください。

これらのURLは接続に使用されず、要素の意味を定義しています(XML Namespaces参照)ので、セキュリティを変更することはありません。 SVGファイルを無効にするだけです。

関連する問題