トレーニング
モジュール
Dynamics 365 Business Central での XMLports の使用 - Training
AL で XMLports を定義および使用し、さまざまなノードやプロパティについて理解して AL コードに適用する方法について説明します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
XML リーダーは、XML の入力ソースの上にカーソルを置きます。 その中核となる XML リーダーは、一度に 1 つの XML ノード を読み取りますが、ノードのシーケンスの読み取りを容易にするために追加のヘルパー API があります。
次の種類のリーダー入力がサポートされています。
リーダーは、要素に存在する属性が一意であることを確認します。 この検証を実行するために必要な時間は、要素の属性の数の関数であり、 WS_XML_READER_PROPERTY_MAX_ATTRIBUTESと同じ大きさにすることができます。 そのため、 WS_XML_READER_PROPERTY_MAX_ATTRIBUTES が大きな値に設定されている場合に大きなドキュメントを処理すると、サービス拒否攻撃の機会が生じる可能性があります。
リーダーは、各要素と属性の名前空間にプレフィックスをマップします。 このマッピングの実行に必要な時間は、スコープ内の xmlns 属性の数の関数であり、 WS_XML_READER_PROPERTY_MAX_NAMESPACESと同じ大きさになる可能性があります。 そのため、このプロパティが大きな値に設定されている場合に大きなドキュメントを処理すると、サービス拒否攻撃の機会が生じる可能性があります。
閲覧者は、ドキュメントが xml の文法仕様に従い、さらにその側面が指定されたクォータ内にあることを確認しますが、信頼されていないソースからのドキュメントのコンテンツは信頼されていないと見なす必要があります。 リーダーのユーザーは、WsReadToStartElement、WsFindAttribute、またはノードを手動で検査して、すべての要素と属性の名前と名前空間をチェックする必要があります。
考慮すべきその他の状況には、次のようなものがありますが、これらに限定されません。
リーダーのユーザーは、ドキュメントから読み取られた値に基づいてメモリを割り当てないようにする必要があります。 たとえば、次の xml ドキュメントを考えてみましょう。
<array count='1000000'>
<!-- malicious document provider didn't actually provide 1000000 array items -->
</array>
一部の要素が続くという前提に基づいて配列を割り当てることは、潜在的な攻撃ベクトルになります。 この場合、リーダーのユーザーは、代わりに要素が表示される際にメモリを段階的に割り当てる必要があります。
XML リーダーは DTD をサポートしていません。 リーダーのユーザーは、DTD 検証について心配する必要はありません。
XML リーダーでは、次のコールバックが使用されます。
XML リーダーでは、次の列挙が使用されます。
XML リーダーでは、次の関数が使用されます。
XML リーダーでは、次のハンドルが使用されます。
XML リーダーでは、次の構造体が使用されます。
トレーニング
モジュール
Dynamics 365 Business Central での XMLports の使用 - Training
AL で XMLports を定義および使用し、さまざまなノードやプロパティについて理解して AL コードに適用する方法について説明します。