---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://www.servicenow.com/docs/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# XMLStreamingAPI - スコープ指定

# XMLStreamingAPI - スコープ指定 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：42分

大規模なストリーミング XML ペイロードをビルドし、それを REST または SOAP 要求で使用して大量のデータをサードパーティ API に送信します。非ストリーミングオプション用の XML 文字列としてペイロードを作成することもできます。
これらのメソッドを ワークフロースタジオ スクリプトステップで `sn_ih` 名前空間識別子とともに使用します。たとえば、この API を使用して ワークフロースタジオ スクリプトステップで XML ペイロードを作成し、戻り値を REST ステップに渡して、要求をサードパーティサービスに送信できます。詳細については、「ワークフロースタジオ [スクリプトステップ](https://www.servicenow.com/docs/access?context=javascript-step-action-designer&version=xanadu&pubname=xanadu-build-workflows&ft:locale=en-US)」を参照してください。  
注:  
この API は ワークフロースタジオ 環境内でのみ使用できます。

このクラスにはコンストラクターはありません。代わりに、[XMLStreamingBuilder](https://www.servicenow.com/docs/H0GjOfXyiu9MPnPWzBb0fg#XMLStreamingBuilderScopedAPI "大規模な XML ペイロードをビルドするためのビルダーオブジェクトを作成し、それを REST または SOAP 要求で使用して大量のデータをサードパーティ API に送信します。非ストリーミングオプション用の XML 文字列としてペイロードを作成することもできます。") クラスの build() メソッドを呼び出して、XMLStreamingAPI オブジェクトを返す必要があります。

## API 呼び出し順 {#XMLStreamingAPIScopedAPI__section_wk4_5bm_jlb}

XML ペイロードを生成するには、まず XMLStreamingBuilder を使用してビルダーオブジェクトをインスタンス化し、次に XMLStreamingAPI クラスのメソッドを呼び出します。  

1. XMLStreamingBuilder：ビルダーオブジェクトを作成する
:   下記のメソッドを次の順番で使用して、ビルダーオブジェクトを作成します。  
    1. XMLStreamingBuilder()：XMLStreamingBuilder オブジェクトをインスタンス化します。
    2. withAttachment()：オプション。添付ファイルとして XML ドキュメントを作成し、ストリーミング添付ファイル \[streaming_attachment\] テーブルに格納します。このメソッドを呼び出さない場合、API はペイロードを XML 文字列としてビルドします。
    3. expiresAt()：オプション。添付ファイルの有効期限が切れる時刻を設定します。デフォルトは false です。withAttachment() メソッドも呼び出す必要があります。
    4. build()：XMLStreamingAPI オブジェクトを返します。
    {#XMLStreamingAPIScopedAPI__ol_gvr_k2k_jlb}

2. XMLStreamingAPI：XML ペイロードをビルドする
:   下記のメソッドを次の順番で使用して、XML ペイロードを作成します。  
    1. startDocument()： XML ドキュメントの最上位の親要素を作成します。
    2. XML ドキュメントに子要素を生成するメソッド：writeTextElement()、startElement()、writeArray() など。
    3. 要素の属性を生成するメソッド：writeAttribute()、writeNamespace()、writeDtd() など。
    4. endElement()： XML 要素を閉じます。
    5. endDocument： 最上位の親要素を閉じます。
    6. getXMLString() または getAttachmentId()：作成した XML 文字列または添付ファイル ID を返します。
    7. close()：XMLStreamingAPI オブジェクトを閉じます。
    {#XMLStreamingAPIScopedAPI__ol_hvr_k2k_jlb}

## サイズ制限 {#XMLStreamingAPIScopedAPI__section_qkj_sd5_hlb}

この API を介して生成されたペイロードは、次のサイズ制限を超えることはできません。  
* 添付ファイル：200 MB
* 文字列：5 MB
{#XMLStreamingAPIScopedAPI__ul_syy_lsw_3lb}  
次の例では、XML ドキュメントを作成し、定義された有効期限と一緒にストリーミング添付ファイル \[streaming_attachment\] テーブルに格納する方法を示します。  


    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment() // Creates the XML document in streaming mode within an attachment.
        .expiresAt(ttl) // Sets an expiration date for the attachment.
        .build(); // Creates the XMLStreamingAPI object.

      builder.startDocument("Employee") // Begins generating the XML document.
        .writeTextElement("firstName","John") // Writes a "firstName" element and value.
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address") // Adds an "address" parent element.
          .writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement() // Adds a closing tag for the "address" element.
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument() // Stops generating the XML document.
          
      gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

一方この例は、スクリプトステップで API を使用してペイロードを XML 文字列として作成する方法を示しています。このオプションを使用すると、5 MB 未満のペイロードを作成できます。  

    (function execute(inputs, outputs) {

      var builder = new sn_ih.XMLStreamingBuilder().build();
      
      builder.startDocument("Employee")
        .enablePrettyPrint()
        .writeTextElement("firstName","John")
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address")
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement()
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument()

      outputs.payload = builder.getXMLString();
      
    })(inputs, outputs);

出力：  

    <?xml version="1.0" encoding="UTF-8"?>
    <firstName>John</firstName>
    <lastName>Smith</lastName>
    <age>25</age>
    <address>
      <streetAddress>21 2nd Street</streetAddress>
      <city>Santa Clara</city>
      <state>CA</state>
      <postalCode>11111</postalCode>
    </address>
    <phoneNumber>
      <type>home</type>
      <number>212 555-1234</number>
      <type>fax</type>
      <number>646 555-4567</number>
    </phoneNumber>

## XMLStreamingAPI - close() {#ariaid-title2}

XMLStreamingAPI オブジェクトを閉じます。XML ドキュメントの構築後は、このメソッドを呼び出してストリームを閉じる必要があります。
{#XSA-close__table_pnn_31t_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 1. パラメーター]

{#XSA-close__table_pnn_31t_jlb} {#XSA-close__table_qnn_31t_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 2. 返される内容]

{#XSA-close__table_qnn_31t_jlb}

### 例

次の例では、XML ドキュメントを作成し、定義された有効期限と一緒にストリーミング添付ファイル \[streaming_attachment\] テーブルに格納する方法を示します。


    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment() // Creates the XML document in streaming mode within an attachment.
        .expiresAt(ttl) // Sets an expiration date for the attachment.
        .build(); // Creates the XMLStreamingAPI object.

      builder.startDocument("Employee") // Begins generating the XML document.
        .writeTextElement("firstName","John") // Writes a "firstName" element and value.
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address") // Adds an "address" parent element.
          .writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement() // Adds a closing tag for the "address" element.
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument() // Stops generating the XML document.
          
      gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

## XMLStreamingAPI - disablePrettyPrint() {#ariaid-title3}

XML 形式のプリティプリントを終了します。
このメソッドを呼び出す前に、まず enablePrettyPrint() を呼び出して、セクションに XML 形式を追加する必要があります。
{#XSA-disablePrettyPrint__table_exb_gct_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 3. パラメーター]

{#XSA-disablePrettyPrint__table_exb_gct_jlb} {#XSA-disablePrettyPrint__table_fxb_gct_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 4. 返される内容]

{#XSA-disablePrettyPrint__table_fxb_gct_jlb}  
次の例では、`addres` 要素にプリティプリントの書式設定を追加する方法を示します。

    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment()
        .expiresAt(ttl)
        .build();

      builder.startDocument("Employee")
        .writeTextElement("firstName","John")
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .enablePrettyPrint()
        .startElement("address")
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement()
        .disablePrettyPrint()
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument()
          
      gs.log(builder.getAttachmentId());
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

## XMLStreamingAPI - enablePrettyPrint() {#ariaid-title4}

XML 要素または要素のツリーにプリティプリントの書式設定を追加します。
書式設定を終了するには、disablePrettyPrint() メソッドを使用します。
{#XSA-enablePrettyPrint__table_b2k_2ct_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 5. パラメーター]

{#XSA-enablePrettyPrint__table_b2k_2ct_jlb} {#XSA-enablePrettyPrint__table_c2k_2ct_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 6. 返される内容]

{#XSA-enablePrettyPrint__table_c2k_2ct_jlb}  
次の例では、`addres` 要素にプリティプリントの書式設定を追加する方法を示します。

    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment()
        .expiresAt(ttl)
        .build();

      builder.startDocument("Employee")
        .writeTextElement("firstName","John")
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .enablePrettyPrint()
        .startElement("address")
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement()
        .disablePrettyPrint()
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument()
          
      gs.log(builder.getAttachmentId());
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

## XMLStreamingAPI - endDocument() {#ariaid-title5}

XML ドキュメントの構造を終了します。
startDocument() メソッドを呼び出してストリーミング XML ドキュメントを整理した後に、ドキュメントの構造の最後で endDocument() メソッドを呼び出します。ストリーミング XML ドキュメントの構造を正常に構築するには、これら 2 つのメソッドを一緒に使用する必要があります。
{#XSA-endDocument__table_nvn_bnz_clb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 7. パラメーター]

{#XSA-endDocument__table_nvn_bnz_clb} {#XSA-endDocument__table_ovn_bnz_clb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 8. 返される内容]

{#XSA-endDocument__table_ovn_bnz_clb}  
次の例では、あるユーザーに関する要素を含む XML ドキュメントを作成する方法を示します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('Employee')
            .writeTextElement('firstName', 'John')
            .writeTextElement('lastName', 'Smith')
            .writeTextElement('age', '25')
            .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - endElement() {#ariaid-title6}

XML 要素に終了タグを追加します。
有効な XML 要素を作成するには、以下のメソッドをこの順序で使用します。

1. startElement() メソッドを使用して開始タグを追加する。
2. endElement() メソッドを使用して終了タグを追加する。
{#XSA-endElement__ol_uwy_qb3_bmb}
{#XSA-endElement__table_cct_vkh_dlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 9. パラメーター]

{#XSA-endElement__table_cct_vkh_dlb} {#XSA-endElement__table_dct_vkh_dlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 10. 返される内容]

{#XSA-endElement__table_dct_vkh_dlb}  
次の例では、`address` という親要素を構築し、次に 4 つの子要素を書き込む方法を示します。

    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment()
        .expiresAt(ttl)
        .build();

      builder.startDocument("Employee")
          .startElement("address")
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement()
      .endDocument()
          
      gs.log(builder.getAttachmentId());
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

## XMLStreamingAPI - getXMLString() {#ariaid-title7}

XML ドキュメントを文字列として返します。
XML ドキュメントを文字列として返すには、XMLStreamingBuilder クラスの getAttachementId() メソッドを呼び出さないでください。詳細については、「[XMLStreamingBuilder - スコープ指定](https://www.servicenow.com/docs/H0GjOfXyiu9MPnPWzBb0fg#XMLStreamingBuilderScopedAPI "大規模な XML ペイロードをビルドするためのビルダーオブジェクトを作成し、それを REST または SOAP 要求で使用して大量のデータをサードパーティ API に送信します。非ストリーミングオプション用の XML 文字列としてペイロードを作成することもできます。")」を参照してください。
{#XSA-getXMLString__table_rbj_kct_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 11. パラメーター]

{#XSA-getXMLString__table_rbj_kct_jlb} {#XSA-getXMLString__table_sbj_kct_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | XMLStreamingAPI メソッドを使用して文字列として作成された XML ドキュメント。 |
[表 : 12. 返される内容]

{#XSA-getXMLString__table_sbj_kct_jlb}  
次の例では、XML ドキュメントを作成し、それを文字列として返す方法を示します。  

    (function execute(inputs, outputs) {

      var builder = new sn_ih.XMLStreamingBuilder().build();
      
      builder.startDocument("Employee")
        .enablePrettyPrint()
        .writeTextElement("firstName","John")
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address")
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement()
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument()

      outputs.payload = builder.getXMLString();
      
    })(inputs, outputs);

出力：  

    <?xml version="1.0" encoding="UTF-8"?>
    <firstName>John</firstName>
    <lastName>Smith</lastName>
    <age>25</age>
    <address>
      <streetAddress>21 2nd Street</streetAddress>
      <city>Santa Clara</city>
      <state>CA</state>
      <postalCode>11111</postalCode>
    </address>
    <phoneNumber>
      <type>home</type>
      <number>212 555-1234</number>
      <type>fax</type>
      <number>646 555-4567</number>
    </phoneNumber>

## XMLStreamingAPI - startDocument(文字列 rootElement, オブジェクト namespaceDefinitionMap) {#ariaid-title8}

XML ドキュメントの構築を開始します。
build() メソッドを呼び出した後、startDocument() メソッドを呼び出して XML ドキュメントの整理を開始します。ドキュメントの構造の最後で endDocument メソッドを呼び出すことも必要です。
{#XSA-startDocument_S_O__table_yyj_tqg_dlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| rootElement | 文字列 | オプション。XML ドキュメントのルート要素、または最上位の親要素。 |
| namespaceDefinitionMap | オブジェクト | オプション。後続の要素リスト内の名前空間のキーと値、および関連する値のマップ。例： { 'namespaceOne':'namespaceValue', 'namespaceTwo':'namespaceValue' } |
[表 : 13. パラメーター]

{#XSA-startDocument_S_O__table_yyj_tqg_dlb} {#XSA-startDocument_S_O__table_zyj_tqg_dlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 14. 返される内容]

{#XSA-startDocument_S_O__table_zyj_tqg_dlb}  
次の例では、ある従業員に関する情報が入った要素を含む XML ドキュメントを作成する方法を示します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('Employee')
            .writeTextElement('firstName', 'John')
            .writeTextElement('lastName', 'Smith')
            .writeTextElement('age', '25')
            .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - startElement(文字列 name, オブジェクト namespaceMap, オブジェクト attributeMap, 文字列 prefix) {#ariaid-title9}

XML 要素に開始タグを追加します。
有効な XML 要素を作成するには、以下のメソッドをこの順序で使用します。

1. startElement() メソッドを使用して開始タグを追加する。
2. endElement() メソッドを使用して終了タグを追加する。
{#XSA-startElement_S_O_O_S__ol_uwy_qb3_bmb}
{#XSA-startElement_S_O_O_S__table_d1l_cjh_dlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | XML 要素の名前。 |
| namespaceMap | オブジェクト | オプション。後続の要素リスト内の名前空間のキーと値、および関連する値のマップ。例： { 'namespaceOne':'namespaceValue', 'namespaceTwo':'namespaceValue' } |
| attributeMap | オブジェクト | オプション。後続の要素リスト内の属性のキーと値、および関連する値のマップ。 |
| プリフィックス | 文字列 | オプション。XML 要素のプリフィックス。 |
[表 : 15. パラメーター]

{#XSA-startElement_S_O_O_S__table_d1l_cjh_dlb} {#XSA-startElement_S_O_O_S__table_e1l_cjh_dlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 16. 返される内容]

{#XSA-startElement_S_O_O_S__table_e1l_cjh_dlb}  
次の例では、address という親要素を構築し、次に 4 つの子要素を書き込む方法を示します。

    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment()
        .expiresAt(ttl)
        .build();

      builder.startDocument("Employee")
          .startElement("address")
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement()
      .endDocument()
          
      gs.log(builder.getAttachmentId());
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

## XMLStreamingAPI - writeArray(文字列 elementName, アレイ data, 文字列 wrappingElement) {#ariaid-title10}

事前定義されたテキストを含むネストされた要素のリストを、ストリーミング XML ドキュメントに追加します。
startDocument() メソッドを呼び出した後、writeArray() メソッドを呼び出して、ネストされた要素のブロックをストリーミング XML ドキュメントに追加できます。
{#XSA-writeArray_S_O_O__table_fgt_jbt_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| elementName | 文字列 | data アレイの一覧にある各文字列に関連付けられた XML 要素の名前。 |
| data | アレイ | wrappingElement 内にネストされた各要素に割り当てる値のリスト。 |
| wrappingElement | 文字列 | 各 elementName を含む親要素。 |
[表 : 17. パラメーター]

{#XSA-writeArray_S_O_O__table_fgt_jbt_jlb} {#XSA-writeArray_S_O_O__table_ggt_jbt_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 18. 返される内容]

{#XSA-writeArray_S_O_O__table_ggt_jbt_jlb}  
次の例では、`OfficeLocations`という名前の親要素を構築し、5 つの `city` 要素のアレイをネストする方法を示します。

    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment()
        .expiresAt(ttl)
        .build();

      builder.startDocument("Employee")
          .writeArray('city', ['Santa Clara','San Diego','Chicago','Sydney','London'], 'officeLocations')
      .endDocument()
          
      gs.log(builder.getAttachmentId());
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

## XMLStreamingAPI - writeAttribute(文字列 name, 文字列 value) {#ariaid-title11}

XML ドキュメント内の要素に属性を追加します。
startDocument()、startElement()、または writeTextElement() メソッドを呼び出した後、writeAttribute() メソッドを呼び出して、関連する XML 要素に属性を追加できます。
{#XSA-writeAttribute_S_S__table_gwq_2bt_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | XML 要素の属性の名前。 |
| value | 文字列 | XML 要素の属性の値。 |
[表 : 19. パラメーター]

{#XSA-writeAttribute_S_S__table_gwq_2bt_jlb} {#XSA-writeAttribute_S_S__table_hwq_2bt_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 20. 返される内容]

{#XSA-writeAttribute_S_S__table_hwq_2bt_jlb}  
この例では、idNumber という属性を employee 要素に追加します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('Employee')
        .writeAttribute('idNumber','12345')
            .writeTextElement('firstName', 'John')
            .writeTextElement('lastName', 'Smith')
            .writeTextElement('age', '25')
        .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - writeAttributes(オブジェクト attributeMap) {#ariaid-title12}

XML ドキュメント内の要素に属性を追加します。
startDocument()、startElement()、または writeTextElement() メソッドを呼び出した後、writeAttributes() メソッドを呼び出して、関連する XML 要素に複数の属性を追加できます。
{#XSA-writeAttributes_O__table_nzt_gbt_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| attributeMap | オブジェクト | XML 要素に関連付ける属性名と値を含む、キーと値のマップ。例： { 'attributeOne':'attributeValue', 'attributeTwo':'attributeValue' } |
[表 : 21. パラメーター]

{#XSA-writeAttributes_O__table_nzt_gbt_jlb} {#XSA-writeAttributes_O__table_ozt_gbt_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 22. 返される内容]

{#XSA-writeAttributes_O__table_ozt_gbt_jlb}  
この例では、idNumber、officeLocation、および department という属性を employee 要素に追加します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('Employee')
        .writeAttributes({'idNumber':'12345', 'officeLocation':'San Diego', 'department':'Sales'})
            .writeTextElement('firstName', 'John')
            .writeTextElement('lastName', 'Smith')
            .writeTextElement('age', '25')
        .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - writeCData(文字列 data) {#ariaid-title13}

CDATA を XML ドキュメントに追加します。
writeCDataElement() メソッドを呼び出した後、writeCData() メソッドを呼び出して要素内に CDATA を追加できます。
{#XSA-writeCData_S__table_ncx_qbt_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| data | 文字列 | CDATA 要素内の CDATA キーワードの後に含める値。 |
[表 : 23. パラメーター]

{#XSA-writeCData_S__table_ncx_qbt_jlb} {#XSA-writeCData_S__table_ocx_qbt_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 24. 返される内容]

{#XSA-writeCData_S__table_ocx_qbt_jlb}  
この例では、CDATA を CDATA 要素 `timeWorked` に追加します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('Employee')
            .writeTextElement('firstName', 'John')
            .writeTextElement('lastName', 'Smith')
            .writeTextElement('age', '25')
            .writeCDataElement('timeWorked')
            .writeCData('< 2 years')
        .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - writeCDataElement(文字列 name, 文字列 data, オブジェクト prefix) {#ariaid-title14}

CDATA の要素を XML ドキュメントに追加します。
startDocument() メソッドを呼び出した後、writeCDataElement() メソッドを呼び出して、CDATA の要素を XML ドキュメントに追加できます。
{#XSA-writeCDataElement_S_S_O__table_z31_tbt_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | CDATA の要素の名前。 |
| data | 文字列 | オプション。CDATA の要素の解析対象となるデータのタイプ。 |
| プリフィックス | オブジェクト | オプション。CDATA の要素に含まれる子要素と値のマップ。例： { 'prefixOne':'prefixValue', 'prefixTwo':'prefixValue' } [writeNamespace()](https://www.servicenow.com/docs/1U8kbQrxlRQlboTGpj5h_A#XMLStreamingAPIScopedAPI "大規模なストリーミング XML ペイロードをビルドし、それを REST または SOAP 要求で使用して大量のデータをサードパーティ API に送信します。非ストリーミングオプション用の XML 文字列としてペイロードを作成することもできます。") を使用して、XML 要素の接頭辞を名前空間に関連付ける必要があります。 |
[表 : 25. パラメーター]

{#XSA-writeCDataElement_S_S_O__table_z31_tbt_jlb} {#XSA-writeCDataElement_S_S_O__table_aj1_tbt_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 26. 返される内容]

{#XSA-writeCDataElement_S_S_O__table_aj1_tbt_jlb}  
この例では、 `address ` という名前のドキュメントタイプ定義を使用して、XML ドキュメントの内部ドキュメントタイプ定義を定義します。

    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment()
        .expiresAt(ttl)
        .build();

      builder.startDocument("Employee")
      .writeDtd('address')
      .writeCDataElement('home', '#PCDATA', {'streetAddress', 'city', 'state', 'postalCode'})
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
      .endDocument()
          
      gs.log(builder.getAttachmentId());
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

## XMLStreamingAPI - writeCharacters(文字列 text) {#ariaid-title15}

XML ドキュメントにテキストを追加します。
XML ドキュメントのセクションに文字列データを挿入するには、writeCharacters() メソッドを使用します。
{#XSA-writeCharacters_S__table_gwv_nbt_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| text | 文字列 | XML ドキュメントのセクションに追加するテキスト。 |
[表 : 27. パラメーター]

{#XSA-writeCharacters_S__table_gwv_nbt_jlb} {#XSA-writeCharacters_S__table_hwv_nbt_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 28. 返される内容]

{#XSA-writeCharacters_S__table_hwv_nbt_jlb}  
次の例では、XML ドキュメントの要素にテキスト値を追加する方法を示します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('Employee')
            .startElement('firstName')
            .writeCharacters('John')
            .EndElement()
            .startElement('lastName')
            .writeCharacters('Smith')
            .endElement()
        .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - writeComment(文字列 comment) {#ariaid-title16}

XML ドキュメントにコメントを追加します。
startDocument() メソッドを呼び出した後、writeComment() メソッドを呼び出して、XML ドキュメントにコメントを追加できます。
{#XSA-writeComment_S__table_i2x_vbt_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| comment | 文字列 | 含めるコメントのテキスト。 |
[表 : 29. パラメーター]

{#XSA-writeComment_S__table_i2x_vbt_jlb} {#XSA-writeComment_S__table_j2x_vbt_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 30. 返される内容]

{#XSA-writeComment_S__table_j2x_vbt_jlb}  
次の例は、XML ドキュメントにコメントを追加する方法を示します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('Employee')
            .writeComment('Element for information related to active employees.')
            .writeTextElement('firstName', 'John')
            .writeTextElement('lastName', 'Smith')
            .writeTextElement('age', '25')
        .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - writeDtd(文字列 dtd) {#ariaid-title17}

ドキュメントタイプの定義を XML ドキュメントに追加します。
startDocument() メソッドを呼び出した後、writeDtd() メソッドを呼び出して、XML ドキュメントに有効な XML ドキュメントタイプ定義を追加できます。
{#XSA-writeDtd_S__table_iyt_xbt_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| dtd | 文字列 | 有効な XML ドキュメントタイプ定義の名前。 |
[表 : 31. パラメーター]

{#XSA-writeDtd_S__table_iyt_xbt_jlb} {#XSA-writeDtd_S__table_jyt_xbt_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 32. 返される内容]

{#XSA-writeDtd_S__table_jyt_xbt_jlb}  
この例では、addressというドキュメントタイプ定義を使用して、XML ドキュメントの内部ドキュメントタイプ定義を定義します。

    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment()
        .expiresAt(ttl)
        .build();

      builder.startDocument("Employee")
      .writeDtd('address')
      .writeCDataElement('home', '#PCDATA', {'streetAddress', 'city', 'state', 'postalCode'})
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
      .endDocument()
          
      gs.log(builder.getAttachmentId());
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

## XMLStreamingAPI - writeNamespace(文字列 prefix, 文字列 namespaceURI) {#ariaid-title18}

XML ドキュメント内の要素に名前空間を追加します。
startDocument()、startElement()、または writeTextElement() メソッドを呼び出した後、writeNamespace() メソッドを呼び出して、関連する XML 要素に名前空間を追加できます。
{#XSA-writeNamespace_S_S__table_edp_qzs_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| prefix | 文字列 | XML 名前空間のプリフィックス。 |
| namespaceURI | 文字列 | オプション。名前空間の URI。 |
[表 : 33. パラメーター]

{#XSA-writeNamespace_S_S__table_edp_qzs_jlb} {#XSA-writeNamespace_S_S__table_fdp_qzs_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 34. 返される内容]

{#XSA-writeNamespace_S_S__table_fdp_qzs_jlb}  
次の例は、`company` というルート要素に名前空間と URI を追加し、ネストされた `companyName` 要素にプリフィックスを割り当てる方法を示します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('company')
        .writeNamespace('x','https://www.servicenow.com')
            .writeTextElement('companyName', 'ServiceNow')
            .writeNamespace('x')
        .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - writeNamespaces(オブジェクト namespaceMap) {#ariaid-title19}

XML ドキュメント内のルート要素に名前空間を追加します。
startDocument() または startElement() メソッドを呼び出した後、writeNamespaces() メソッドを呼び出して、関連する XML 要素の名前空間を宣言できます。
{#XSA-writeNamespaces_O__table_z4l_21t_jlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| namespaceMap | オブジェクト | XML ドキュメントのルート要素に関連付ける名前空間のプリフィックスと URI を含む、キーと値のマップ。例： { 'namespaceOne':'namespaceValue', 'namespaceTwo':'namespaceValue' } |
[表 : 35. パラメーター]

{#XSA-writeNamespaces_O__table_z4l_21t_jlb} {#XSA-writeNamespaces_O__table_apl_21t_jlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 36. 返される内容]

{#XSA-writeNamespaces_O__table_apl_21t_jlb}  
この例では、company というルート要素に 2 つの名前空間と URI を追加し、その後ネストされた要素に適切なプリフィックスを割り当てます。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('company')
        .writeNamespaces({'x':'https://www.servicenow.com', 'y':'https://www.developer.servicenow.com'})
            .writeTextElement('companyName', 'ServiceNow')
            .writeNamespace('x')
            .writeTextElement('devFramework', 'UI Framework')
            .writeNamespace('y')
        .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }

## XMLStreamingAPI - writeTextElement(文字列 name, 文字列 text, オブジェクト prefix) {#ariaid-title20}

単一の XML 要素を XML ドキュメントに追加します。
startDocument() メソッドを呼び出した後、writeTextElement() メソッドを呼び出して、単一の XML 要素を XML ドキュメントの構造に追加できます。
{#XSA-writeTextElement_S_S_O__table_ryd_zkh_dlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | XML 要素の名前。 |
| text | 文字列 | XML 要素の値。 |
| prefix | オブジェクト | オプション。XML 要素に関連付けられたプリフィックスと値のマップ。例： { 'prefixOne':'prefixValue', 'prefixTwo':'prefixValue' } [writeNamespace()](https://www.servicenow.com/docs/1U8kbQrxlRQlboTGpj5h_A#XMLStreamingAPIScopedAPI "大規模なストリーミング XML ペイロードをビルドし、それを REST または SOAP 要求で使用して大量のデータをサードパーティ API に送信します。非ストリーミングオプション用の XML 文字列としてペイロードを作成することもできます。") を使用して、XML 要素の接頭辞を名前空間に関連付ける必要があります。 |
[表 : 37. パラメーター]

{#XSA-writeTextElement_S_S_O__table_ryd_zkh_dlb} {#XSA-writeTextElement_S_S_O__table_syd_zkh_dlb__entry__2}

| タイプ | 説明 |
|-|-|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
[表 : 38. 返される内容]

{#XSA-writeTextElement_S_S_O__table_syd_zkh_dlb}  
次の例は、ある従業員に関する情報が入った要素を 3 つ含む XML ドキュメントを作成する方法を示します。

    try {
        var ttl = new GlideDateTime('2011-01-01 12:00:00');
        var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
        var streamingDocument = builder.build();

        streamingDocument.startDocument('Employee')
            .writeTextElement('firstName', 'John')
            .writeTextElement('lastName', 'Smith')
            .writeTextElement('age', '25')
        .endDocument();
        gs.log(streamingDocument.getAttachmentId());
    } catch (err) {
        gs.log(err);
    } finally {
        streamingDocument.close();
    }


