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

 Release :

    - xanadu

ft:locale :

    - ko-KR

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) 소요 시간: 40분

대량 데이터를 타사 API로 전송하기 위해 REST 또는 SOAP 요청에 사용할 대규모 스트리밍 XML 페이로드를 빌드합니다. 비 스트리밍 옵션에 대한 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://servicenow-prod.fluidtopics.net/cWNlKh1Wk6zCsVbAj0ZhOg#XMLStreamingBuilderScopedAPI "외부 공급업체 API에 대량 데이터를 전송하기 위해 REST 또는 SOAP 요청에 사용할 대규모 XML 페이로드를 빌드하는 빌더 객체를 만듭니다. 비 스트리밍 옵션에 대한 XML 문자열로 페이로드를 만들 수도 있습니다.") 클래스에서 build() 메서드를 호출하여 XMLStreamingAPI 객체를 반환해야 합니다.

## API 호출 순서 {#XMLStreamingAPIScopedAPI__section_wk4_5bm_jlb}

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

1. XMLStreamingBuilder: 빌더 개체를 만듭니다.
:   다음 순서에 따라 이러한 메서드를 사용하여 Builder 개체를 만듭니다.  
    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를 통해 작성된 페이로드는 다음 크기 제한을 초과할 수 없습니다.  
* 첨부 파일: 200MB
* 문자열 : 5MB
{#XMLStreamingAPIScopedAPI__ul_syy_lsw_3lb}  
다음 예제에서는 XML 문서를 만들고 정의된 만료 날짜와 함께 Streaming Attachments \[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>

## 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}

| 유형 | 설명 |
|-|-|
| void |   |
[표 2. 반환]

{#XSA-close__table_qnn_31t_jlb}

### 예제

다음 예제에서는 XML 문서를 만들고 정의된 만료 날짜와 함께 Streaming Attachments \[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}  
다음 예제에서는 `address` 요소에 예쁜 인쇄 서식을 추가하는 방법을 보여 줍니다.

    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}  
다음 예제에서는 `address` 요소에 예쁜 인쇄 서식을 추가하는 방법을 보여 줍니다.

    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 문서의 구조를 성공적으로 빌드하려면 이 두 메서드를 함께 사용해야 합니다.
{#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 - Scoped](https://servicenow-prod.fluidtopics.net/cWNlKh1Wk6zCsVbAj0ZhOg#XMLStreamingBuilderScopedAPI "외부 공급업체 API에 대량 데이터를 전송하기 위해 REST 또는 SOAP 요청에 사용할 대규모 XML 페이로드를 빌드하는 빌더 객체를 만듭니다. 비 스트리밍 옵션에 대한 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(String, rootElement, Object namespaceDefinitionMap) {#ariaid-title8}

XML 문서 작성을 시작합니다.
build() 메서드를 호출한 후 startDocument() 메서드를 호출하여 XML 문서 구성을 시작합니다. 또한 문서 구조의 끝에서 endDocument 메서드를 호출해야 합니다.
{#XSA-startDocument_S_O__table_yyj_tqg_dlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| root엘리먼트 | 문자열 | 옵션입니다. 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(문자열 이름, 개체 namespaceMap, 개체 attributeMap, 문자열 접두어) {#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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | XML 요소의 이름입니다. |
| 네임스페이스맵 | 객체 | 옵션입니다. 후속 요소 목록에 있는 네임스페이스와 관련 값의 키와 값 맵입니다. 예: { 'namespaceOne':'namespaceValue', 'namespaceTwo':'namespaceValue' } |
| 속성 맵 | 객체 | 옵션입니다. 속성에 대한 키와 값, 그리고 후속 요소 목록에 있는 관련 값의 맵입니다. |
| 프리픽스 | 문자열 | 옵션입니다. 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(String elementName, 배열 데이터, String wrappingElement) {#ariaid-title10}

미리 정의된 텍스트가 있는 중첩된 요소 목록을 스트리밍 XML 문서에 추가합니다.
startDocument() 메서드를 호출한 후 writeArray() 메서드를 호출하여 스트리밍 XML 문서에 중첩된 요소 블록을 추가할 수 있습니다.
{#XSA-writeArray_S_O_O__table_fgt_jbt_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 요소 이름 | 문자열 | 배열에 나열된 data 각 문자열과 연결된 XML 요소의 이름입니다. |
| 데이터 | 배열 | 안에 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 `개의 도시` 요소 배열을 중첩하는 방법을 보여 줍니다.

    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(문자열 이름, 문자열 값) {#ariaid-title11}

XML 문서의 요소에 특성을 추가합니다.
startDocument(),startElement() 또는 writeTextElement() 메서드를 호출한 후 writeAttribute() 메서드를 호출하여 연결된 XML 요소에 속성을 추가할 수 있습니다.
{#XSA-writeAttribute_S_S__table_gwq_2bt_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | XML 요소의 특성 이름입니다. |
| 값 | 문자열 | 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(Object attributeMap) {#ariaid-title12}

XML 문서의 요소에 특성을 추가합니다.
startDocument(),startElement() 또는 writeTextElement() 메서드를 호출한 후 writeAttributes() 메서드를 호출하여 연결된 XML 요소에 특성을 추가할 수 있습니다.
{#XSA-writeAttributes_O__table_nzt_gbt_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 속성 맵 | 객체 | 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(문자열 데이터) {#ariaid-title13}

XML 문서에 CDATA를 추가합니다.
writeCDataElement() 메서드를 호출한 후 writeCData() 메서드를 호출하여 요소 내에 CDATA를 추가할 수 있습니다.
{#XSA-writeCData_S__table_ncx_qbt_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 데이터 | 문자열 | 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 요소 timeWorked에 CDATA`를 추가합니다.

    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(문자열 이름, 문자열 데이터, 개체 접두사) {#ariaid-title14}

XML 문서에 CDATA 요소를 추가합니다.
startDocument() 메서드를 호출한 후 writeCDataElement() 메서드를 호출하여 XML 문서에 CDATA 요소를 추가할 수 있습니다.
{#XSA-writeCDataElement_S_S_O__table_z31_tbt_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | CDATA 요소의 이름입니다. |
| 데이터 | 문자열 | 옵션입니다. CDATA 요소를 구문 분석할 데이터의 유형입니다. |
| 프리픽스 | 객체 | 옵션입니다. CDATA 요소에 포함된 자식 요소 및 값의 맵입니다. 예: { 'prefixOne':'prefixValue', 'prefixTwo':'prefixValue' } [writeNamespace()](https://servicenow-prod.fluidtopics.net/tllTnkRAKmvCiJUdCmS55A#XMLStreamingAPIScopedAPI "대량 데이터를 타사 API로 전송하기 위해 REST 또는 SOAP 요청에 사용할 대규모 스트리밍 XML 페이로드를 빌드합니다. 비 스트리밍 옵션에 대한 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(문자열 텍스트) {#ariaid-title15}

XML 문서에 텍스트를 추가합니다.
writeCharacters() 메서드를 사용하여 XML 문서의 섹션에 문자열 데이터를 삽입할 수 있습니다.
{#XSA-writeCharacters_S__table_gwv_nbt_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 텍스트 | 문자열 | 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(문자열 주석) {#ariaid-title16}

XML 문서에 주석을 추가합니다.
startDocument() 메서드를 호출한 후 writeComment() 메서드를 호출하여 XML 문서에 주석을 추가할 수 있습니다.
{#XSA-writeComment_S__table_i2x_vbt_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 댓글 | 문자열 | 포함할 의견 텍스트입니다. |
[표 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(문자열 접두사, 문자열 namespaceURI) {#ariaid-title18}

XML 문서의 요소에 네임스페이스를 추가합니다.
startDocument(),startElement() 또는 writeTextElement() 메서드를 호출한 후 writeNamespace() 메서드를 호출하여 연결된 XML 요소에 네임스페이스를 추가할 수 있습니다.
{#XSA-writeNamespace_S_S__table_edp_qzs_jlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 프리픽스 | 문자열 | XML 네임스페이스의 접두사입니다. |
| 네임스페이스URI | 문자열 | 옵션입니다. 네임스페이스의 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}  
다음 예제에서는 `회사` 루트 요소에 네임스페이스와 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}

| 이름 | 유형 | 설명 |
|-|-|-|
| 네임스페이스맵 | 객체 | 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}  
이 예제에서는 회사 루트 요소에 두 개의 네임스페이스와 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(문자열 이름, 문자열 텍스트, 객체 접두사) {#ariaid-title20}

XML 문서에 단일 XML 요소를 추가합니다.
startDocument() 메서드를 호출한 후 writeTextElement() 메서드를 호출하여 XML 문서의 구조에 단일 XML 요소를 추가할 수 있습니다.
{#XSA-writeTextElement_S_S_O__table_ryd_zkh_dlb__entry__3}

| 이름 | 유형 | 설명 |
|-|-|-|
| 이름 | 문자열 | XML 요소의 이름입니다. |
| 텍스트 | 문자열 | XML 요소의 값입니다. |
| 프리픽스 | 객체 | 옵션입니다. XML 요소와 연결된 접두사 및 값의 맵입니다. 예: { 'prefixOne':'prefixValue', 'prefixTwo':'prefixValue' } [writeNamespace()](https://servicenow-prod.fluidtopics.net/tllTnkRAKmvCiJUdCmS55A#XMLStreamingAPIScopedAPI "대량 데이터를 타사 API로 전송하기 위해 REST 또는 SOAP 요청에 사용할 대규모 스트리밍 XML 페이로드를 빌드합니다. 비 스트리밍 옵션에 대한 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}  
다음 예제에서는 직원에 대한 정보가 포함된 세 개의 요소가 포함된 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();
    }


