HTML5ドラフトspecifies(現時点では少なくとも)、about:legacy-compat
というURIは、XML準拠のdoctypeに依存する文書(<!DOCTYPE html>
isn 't)。私はXalanのかサクソンのような任意のXSLTプロセッサと、このようなXHTML5文書を使用する場合XSLTプロセッサーでHTML5の "about:"プロトコルを使用する方法
<!DOCTYPE html SYSTEM "about:legacy-compat">
残念ながら、彼らは自然にしてみてください:
は、だから私はで始まるHTML5、妥当性を検証するXMLファイル、の束を持って起こります(解決不可能な)URIを解決する。
URIを無視したり、偽装したりする方法はありますか?それを解決しようとするとこれらの文書の早い段階で起こるので、例えばSaxonの-dtd:off
スイッチはここでは何の効果もありません。
編集:私は別のXHTML5ファイルをロードするためにdocument()
XPath関数の使用を開始するまで低レベルのアプローチsed -n '2,$p' <htmlfile> | otherapp
は残念ながらのみ動作します。
編集2:私はXML catalogsで遊んで、彼らはサクソンとXalanの両方で動作するようにしました。しかし、その後、私はいつも受け取ります
java.net.MalformedURLException: unknown protocol: about
これは驚くことではありませんが、どうすればこの問題を回避できますか? URLは解析されるべきではなく、ただ破棄されるべきではありません。程度/
package foo.about;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringBufferInputStream;
import java.net.URL;
import java.net.URLConnection;
public class Handler extends java.net.URLStreamHandler {
@Override
protected URLConnection openConnection(URL url) throws IOException {
URLConnection res = new URLConnection(url) {
@Override
public void connect() throws IOException {
connected = true;
}
@Override
public InputStream getInputStream() throws IOException {
return new StringBufferInputStream("<!ELEMENT html ANY>");
}
};
return res;
}
}
/$のsomepath/fooのには、このJavaファイルを入れ
xsltで何を達成しようとしていますか?あなたはhtml5から..へ行くつもりですか? – Wivani
...何か、基本的には。特定のケースでは、FOP(Xalan)で処理し、* more * HTML5をXSLT2とSaxonで分割するXSL-FO – Boldewyn
しかし、私は「about:URL」の場合のURI解決を取り除く方法を、特定のXSLT質問よりも基本的なものにもっと興味があります。これは私の使用例です。 – Boldewyn