---
sourceDocument: 호주 API 참조
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/api-reference

 Release :

    - australia

ft:locale :

    - ko-KR

ft:publication_title :

    - 호주 API 참조

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# XMLStreamingBuilder - 범위 지정됨

# XMLStreamingBuilder - 범위 지정됨 {#ariaid-title1}

* 릴리스 버전: Australia
* 
* 업데이트 날짜 2026년 03월 12일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 17분

대량 데이터를 외부 공급업체 API로 보내기 위한 REST 또는 SOAP 요청에 사용할 큰 XML 페이로드를 빌드하는 작성기 객체를 작성합니다. 페이로드를 비스트리밍 옵션에 대한 XML 문자열로 생성할 수도 있습니다.
`sn_ih` 네임스페이스 식별자와 함께 스크립트 단계에서 이러한 방법을 워크플로우 스튜디오 사용합니다. 예를 들어 이 API를 사용하여 스크립트 단계에서 XML 페이로드 워크플로우 스튜디오 를 생성하고 반환된 값을 REST 단계에 전달하여 요청을 외부 공급업체 서비스에 보낼 수 있습니다. 자세한 내용은 워크플로우 스튜디오 [스크립트 단계를 참조하십시오.](https://www.servicenow.com/docs/access?context=javascript-step-action-designer&version=australia&pubname=australia-build-workflows&ft:locale=en-US)  
주:  
환경 내 워크플로우 스튜디오 에서만 이 API를 사용할 수 있습니다.

## API 호출 순서 {#XMLStreamingBuilderScopedAPI__section_j2q_1ll_jlb}

먼저 XMLStreamingBuilder 를 사용하여 작성기 객체를 인스턴스화한 다음 XMLStreamingAPI 클래스의 메서드를 호출하여 XML 페이로드를 생성합니다.  

1. XMLStreamingBuilder: 빌더 객체를 만듭니다.
:   다음 순서대로 이 메서드를 사용하여 빌더 객체를 생성합니다.  
    1. XMLStreamingBuilder(): XMLStreamingBuilder 객체를 인스턴스화합니다.
    2. withAttachment(): 선택 사항입니다. XML 문서를 첨부 파일로 만들고 스트리밍 첨부 파일 \[streaming_attachment\] 테이블에 저장합니다. 이 메서드를 호출하지 않으면 API는 페이로드를 XML 문자열로 빌드합니다.
    3. expiresAt(): 선택 사항입니다. 첨부 파일이 만료되는 시간을 설정합니다. 기본값은 False입니다. withAttachment() 메서드도 호출해야 합니다.
    4. build(): XMLStreamingAPI 객체를 반환합니다.
    {#XMLStreamingBuilderScopedAPI__ol_gvr_k2k_jlb}

2. XMLStreamingAPI: XML 페이로드를 빌드합니다.
:   다음 순서대로 이러한 방법을 사용하여 XML 페이로드를 생성합니다.  
    1. startDocument(): XML 문서에 최상위 상위 요소를 만듭니다.
    2. writeTextElement(), startElement() 및 writeArray()와 같은 XML 문서에서 하위 요소를 생성하는 메서드입니다.
    3. writeAttribute(), writeNamespace() 및 writeDtd()와 같은 요소에 대한 속성을 생성하는 메서드입니다.
    4. endElement(): XML 요소를 닫습니다.
    5. endDocument: 최상위 상위 요소를 닫습니다.
    6. getXMLString() 또는 getAttachmentId(): 사용자가 생성한 XML 문자열 또는 첨부 파일 ID를 반환합니다.
    7. close(): XMLStreamingAPI 객체를 닫습니다.
    {#XMLStreamingBuilderScopedAPI__ol_hvr_k2k_jlb}

## 크기 제한 {#XMLStreamingBuilderScopedAPI__section_vrl_jvs_1mb}

이 API를 통해 생성된 페이로드는 다음 크기 제한을 초과할 수 없습니다.  
* 첨부 파일: 200MB
* 문자열: 5MB
{#XMLStreamingBuilderScopedAPI__ul_llq_msw_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 문자열로 생성하는 방법을 보여줍니다. 이 옵션을 사용하여 5MB 미만의 페이로드를 생성할 수 있습니다.  

    (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>

## XMLStreamingBuilder - XMLStreamingBuilder() {#ariaid-title2}

XMLStreamingBuilder 개체를 인스턴스화합니다.
{#XSB-XMLStreamingBuilder__table_ogh_vhz_clb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 없음 |   |   |
[표 1. 매개변수]

{#XSB-XMLStreamingBuilder__table_ogh_vhz_clb}  
이 예시에서는 `빌더` 객체를 인스턴스화하는 방법을 보여줍니다.

    var builder = new sn_ih.XMLStreamingBuilder()

## XMLStreamingBuilder - build() {#ariaid-title3}

XMLStreamingAPI 객체를 반환합니다.
{#XSB-build__table_cr5_yms_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 2. 매개변수]

{#XSB-build__table_cr5_yms_jlb} {#XSB-build__table_dr5_yms_jlb__entry__2}

| 유형 | 설명 |
|-|-|
| XML 스트리밍 API | 페이로드를 구성하기 위한 스트리밍 XML 객체입니다. |
[표 3. 반환]

{#XSB-build__table_dr5_yms_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();
    }

## XMLStreamingBuilder - expiresAt(객체 expiresAt) {#ariaid-title4}

첨부 파일이 만료되는 시간을 설정합니다. withAttachment() 메서드도 호출해야 합니다.
{#XSB-expiresAt_O__table_kc4_25s_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| expiresAt | [GlideDateTime](https://servicenow-prod.fluidtopics.net/fpVGOlVCBMRuW84vxoNBIw#c_GlideDateTimeScoped "범위가 지정된 GlideDateTime 클래스는 GlideDateTime 객체에 대한 작업을 수행하기 위한 메서드를 제공합니다.") | 첨부 파일이 만료될 때 설정되는 객체입니다. * 최소값: 첨부 파일이 생성된 시점으로부터 7,200초 또는 2시간. expiresAt() 메서드를 호출하지 않는 경우 기본값입니다. * 최대값: 첨부 파일이 생성된 시점으로부터 172,800초 또는 48시간. {#XSB-expiresAt_O__ul_xsc_trx_3lb} |
[표 4. 매개변수]

{#XSB-expiresAt_O__table_kc4_25s_jlb} {#XSB-expiresAt_O__table_lc4_25s_jlb__entry__2}

| 유형 | 설명 |
|-|-|
| XML 스트리밍 작성기 | XML 페이로드를 시작하는 데 사용되는 작성기 객체입니다. |
[표 5. 반환]

{#XSB-expiresAt_O__table_lc4_25s_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();
    }

## XMLStreamingBuilder - withAttachment() {#ariaid-title5}

XML 문서를 첨부 파일로 만들고 스트리밍 첨부 파일 \[streaming_attachment\] 테이블에 저장합니다. 이 메서드를 호출하지 않으면 API는 XML 문서를 문자열로 만듭니다.
{#XSB-withAttachment__table_oqn_zps_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 안 함 |   |   |
[표 6. 매개변수]

{#XSB-withAttachment__table_oqn_zps_jlb} {#XSB-withAttachment__table_pqn_zps_jlb__entry__2}

| 유형 | 설명 |
|-|-|
| XML 스트리밍 작성기 | XML 페이로드를 시작하는 데 사용되는 작성기 객체입니다. |
[표 7. 반환]

{#XSB-withAttachment__table_pqn_zps_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();
    }

이 예시에서는 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>


