[blockly] > [utils] > [xml]

utils.xml 名前空間

関数

職務 説明
createElement(tagName) XML 用の DOM 要素を作成します。
createTextNode(text) XML 用のテキスト要素を作成します。
domToText(dom)

DOM 構造を書式なしテキストに変換します。現在のテキスト形式はきわめて不鮮明で、空白のない 1 行がすべてです。

制御文字は 10 進数エンコードを使用してエスケープされます。これには U+0000 が含まれますが、厳密に言えば有効な XML 文字ではありませんが(XML 1.1 でも同様です)。https://www.w3.org/TR/xml11/#charsets

デコードされた際、U+0000 は U+FFD(「置換文字」)として解析されます。

injectDependencies(dependencies)

デフォルトの実装の代わりに使用するドキュメント、DOMParser、XMLSerializer の実装を挿入します。

Blockly の Node.js ラッパー(scripts/package/node/core.js を参照)によって使用され、代わりに jsdom パッケージから実装を提供します。

個別に設定することもできますが、通常は、これら 3 つはすべて同じ JSDOM インスタンスから取得されます。少なくとも jsdom パッケージの同じコピーに由来しなければなりません。(通常、この要件を満たさないようにすることは困難ですが、webpack を使用して Blockly と jsdom を含む複数のバンドルを作成し、同じ JavaScript ランタイムに複数のバンドルを読み込むと、誤って違反してしまう可能性があります。現象の経緯の例については、https://github.com/google/blockly-samples/pull/1452#issuecomment-1364442135 をご覧ください)。

textToDom(テキスト)

XML 文字列を DOM 構造に変換します。

制御文字はエスケープする必要があります。(ただし、エスケープされていない文字は可能な限り解析します)。

なお、エスケープされても U+0000 は U+FFFD(置換文字)として解析されます。これは(XML 1.1 であっても)有効な XML 文字には決してないためです。https://www.w3.org/TR/xml11/#charsets

変数

変数 説明
NAME_SPACE Blockly の XML の名前空間。