sxml.serializer
- SXMLからXMLとXHTMLのシリアライゼーション ¶このモジュールはSXMLからXMLとHTMLへの変換を行う、様々な機能を持つ シリアライザを提供します。XSLT2.0とXQuery1.0に部分的に適合しています。 (http://www.w3.org/TR/2005/CR-xslt-xquery-serialization-20051103/)。 sxml.toolsのsxml:sxml->xmlとsxml:sxml->htmlよりも強力です。
マニュアルのエントリは主に、オリジナルのソースコードから取られてています。
• 簡単なSXML変換: | ||
• カスタムSXML変換: |
高レベルの、簡単に使えるシリアライザです。大抵の目的にはこれで十分使えるでしょう。
{sxml.serializer
}
sxml-objをXMLへと変換します。出力は人間が読みやすいように
インデントされます。
port-or-filenameが与えられなければ、 戻り値はsxml-objの変換結果の文字列になります。
port-or-filenameがポートならば、そのポートにXMLを書き出します。 戻り値は不定です。
port-or-filenameが文字列ならば、その名のファイルにXMLを書き出し ます。戻り値は不定です。そのようなファイルが既に存在する場合、 結果は不定です。
註: sxml.ssax
のsxml:sxml->xml
と異なり、
この手続きはXML属性の値が文字列であることを要求します。
{sxml.serializer
}
srl:sxml->xml
と同じように動作しますが、インデントを行いません。
引数port-or-filenameはsrl:sxml->xml
と同様に動作します。
{sxml.serializer
}
sxml-objをHTMLへと変換します。出力は人間が読みやすいように
インデントされます。
引数port-or-filenameはsrl:sxml->xml
と同様に動作します。
註: sxml.ssax
のsxml:sxml->html
と異なり、
この手続きはXML属性の値が文字列であることを要求します。
{sxml.serializer
}
srl:sxml->html
と同じように動作しますが、インデントを行いません。
引数port-or-filenameはsrl:sxml->xml
と同様に動作します。
以下の手続きはXMLシリアライザの全ての設定パラメータへのアクセスを提供 します。
{sxml.serializer
}
汎用シリアライズ手続、この実装でサポートするすべてのシリアライズパラメー
タのパラメータ化。
sxml-obj - シリアライズするSXMLオブジェクト。
port-or-filename - #f
あるいはポートあるいは文字列のどれか。
srl:sxml->xmlのものと同じ働きをします(簡単なSXML変換)。
params - 各パラメータはパラメータ名(シンボル)とパラメータ値との コンス対。利用可能なパラメータ名とその値については後述。
method
- シンボルxml
かhtml
のどちらか。XMLメソッド
とHTMLメソッドの相違についての詳しい説明は、XSLT 2.0 と XQuery
Serialization
(http://www.w3.org/TR/2005/CR-xslt-xquery-serialization-20051103/)
を参照してください。
indent
- 出力の XML が読みやすさのために空白を含むかどうか
(#t
あるいは#f
)。文字列を設定することもでき、その場合
インデント単位に使われます。
omit-xml-declaration
- XML宣言を省略するかどうか。デフォルトは
#t
。
standalone
- XML ドキュメントを XML 宣言でスタンドアローンとし
て定義するかどうか。yes
、no
、omit
のうちいずれかの
シンボルでなければならない。デフォルトは omit
version
- XML宣言中のXMLバージョン。文字列または数。デフォルト
は"1.0"
。
cdata-section-elements
- SXML要素の名前(シンボル)のリスト。これ
らの要素の中身はCDATAセクションと同様にエスケープされる。
ns-prefix-assig
- (cons prefix namespace-uri)
のリスト。
各prefix
はシンボルで、namespace-uri
は文字列。
対応する接頭辞をつけて与えられた名前空間をシリアライズする。
注意: パラメータ名が期待された名前ではない場合、あるいはパラメータ値 が不正な形式である場合にはそのようなパラメータは警告なしで無視されます。
使用実例:
(srl:parameterizable '(tag (@ (attr "value")) (nested "text node") (empty)) (current-output-port) '(method . xml) ; XML出力をデフォールト '(indent . "\t") ; インデントは一つのタブ '(omit-xml-declaration . #f) ; XML宣言をつける '(standalone . yes) ; 「standalone」宣言もつける '(version . "1.0")) ; XMLのバージョン
param ::= (cons param-name param-value) param-name ::= symbol cdata-section-elements value ::= (listof sxml-elem-name) sxml-elem-name ::= symbol indent value ::= 'yes | #t | 'no | #f | whitespace-string method value ::= 'xml | 'html ns-prefix-assig value ::= (listof (cons prefix namespace-uri)) prefix ::= symbol namespace-uri ::= string omit-xml-declaration value ::= 'yes | #t | 'no | #f standalone value ::= 'yes | #t | 'no | #f | 'omit version value ::= string | number
{sxml.serializer
}
srl:parameterizable
と同様ですが、文字列を返し、パラメータ解析のオーバヘッ
ドはありません。この関数のインタフェースはこのライブラリの将来のバージョ
ンでは変更されるかもしれません。
{sxml.serializer
}
srl:parameterizable
と同様ですが、結果を
port-or-filenameに書き出します。パラメータ解析のオーバーヘッドはありません。
この関数のインタフェースはこの
ライブラリの将来のバージョンでは変更されるかもしれません。