XMLStreamingAPI - 범위가 지정됨

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 39분
  • 대량 데이터를 타사 API로 보내기 위한 REST 또는 SOAP 요청에 사용할 대형 스트리밍 XML 페이로드를 빌드합니다. 페이로드를 비스트리밍 옵션에 대한 XML 문자열로 생성할 수도 있습니다.

    sn_ih 네임스페이스 식별자와 함께 스크립트 단계에서 이러한 방법을 워크플로우 스튜디오 사용합니다. 예를 들어 이 API를 사용하여 스크립트 단계에서 XML 페이로드 워크플로우 스튜디오 를 생성하고 반환된 값을 REST 단계에 전달하여 요청을 외부 공급업체 서비스에 보낼 수 있습니다. 자세한 내용은 워크플로우 스튜디오 스크립트 단계를 참조하십시오.
    주:
    환경 내 워크플로우 스튜디오 에서만 이 API를 사용할 수 있습니다.

    이 클래스에 대한 생성자가 없습니다. 대신 XMLStreamingBuilder 클래스에서 build() 메서드를 호출하여 XMLStreamingAPI 개체를 반환해야 합니다.

    API 호출 순서

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

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

    크기 제한

    이 API를 통해 생성된 페이로드는 다음 크기 제한을 초과할 수 없습니다.

    • 첨부 파일: 200MB
    • 문자열: 5MB

    다음 예제에서는 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>

    XMLStreamingAPI - close()

    XMLStreamingAPI 객체를 닫습니다. XML 문서를 빌드한 후 스트림을 닫으려면 이 메서드를 호출해야 합니다.

    표 1. 매개변수
    이름 유형 설명
    안 함
    표 2. 반환
    유형 설명
    무효

    예제

    다음 예제에서는 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()

    예쁜 인쇄 XML 서식을 끝냅니다.

    이 메서드를 호출하기 전에 먼저 enablePrettyPrint() 를 호출하여 섹션에 XML 서식을 추가해야 합니다.

    표 3. 매개변수
    이름 유형 설명
    안 함
    표 4. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 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")
        .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()

    XML 요소 또는 요소의 트리에 예쁜 인쇄 서식을 추가합니다.

    disablePrettyPrint() 메서드를 사용하여 서식을 종료합니다.

    표 5. 매개변수
    이름 유형 설명
    안 함
    표 6. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 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")
        .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()

    XML 문서의 구조를 종료합니다.

    startDocument() 메서드를 호출하고 스트리밍 XML 문서를 구성한 후 문서 구조의 끝에서 endDocument() 메서드를 호출합니다. 스트리밍 XML 문서의 구조를 성공적으로 빌드하려면 이 두 메서드를 함께 사용해야 합니다.

    표 7. 매개변수
    이름 유형 설명
    안 함
    표 8. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 사용자에 대한 요소를 포함하는 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()

    XML 요소에 닫는 태그를 추가합니다.

    다음 순서에서 다음 메서드를 사용하여 유효한 XML 요소를 만듭니다.
    1. startElement() 메서드를 사용하여 시작 태그를 추가합니다.
    2. endElement() 메서드를 사용하여 닫는 태그를 추가합니다.
    표 9. 매개변수
    이름 유형 설명
    안 함
    표 10. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 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()

    XML 문서를 문자열로 반환합니다.

    XML 문서를 문자열로 반환하려면 XMLStreamingBuilder 클래스에서 getAttachementId() 메서드를 호출하지 마십시오. 자세한 내용은 XMLStreamingBuilder - Scoped를 참조하세요.

    표 11. 매개변수
    이름 유형 설명
    안 함
    표 12. 반환
    유형 설명
    문자열 XMLStreamingAPI 메서드를 사용하여 문자열로 만든 XML 문서입니다.

    다음 예제에서는 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)

    XML 문서 빌드를 시작합니다.

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

    표 13. 매개변수
    이름 유형 설명
    root요소 문자열 옵션입니다. XML 문서의 루트 요소 또는 최상위 요소입니다.
    namespaceDefinitionMap 객체 옵션입니다. 네임스페이스에 대한 키와 값의 맵 및 후속 요소 목록에 있는 연관된 값입니다. 예:
    {
    'namespaceOne':'namespaceValue',
    'namespaceTwo':'namespaceValue'
    }
    표 14. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예는 직원에 대한 정보가 있는 요소를 포함하는 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(String name, Object namespaceMap, Object attributeMap, String prefix)

    XML 요소의 시작 태그를 추가합니다.

    다음 순서에서 다음 메서드를 사용하여 유효한 XML 요소를 만듭니다.
    1. startElement() 메서드를 사용하여 시작 태그를 추가합니다.
    2. endElement() 메서드를 사용하여 닫는 태그를 추가합니다.
    표 15. 매개변수
    이름 유형 설명
    이름 문자열 XML 요소의 이름입니다.
    네임스페이스 맵 객체 옵션입니다. 네임스페이스에 대한 키와 값의 맵 및 후속 요소 목록에 있는 연관된 값입니다. 예:
    {
    'namespaceOne':'namespaceValue',
    'namespaceTwo':'namespaceValue'
    }
    속성맵 객체 옵션입니다. 후속 요소 목록에 있는 속성 및 연관된 값에 대한 키와 값의 맵입니다.
    프리픽스 문자열 옵션입니다. XML 요소의 프리픽스입니다.
    표 16. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 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, 배열 데이터, 문자열 wrappingElement)

    미리 정의된 텍스트가 있는 중첩된 요소 목록을 스트리밍 XML 문서에 추가합니다.

    startDocument() 메서드를 호출한 후 writeArray() 메서드를 호출하여 중첩된 요소 블록을 스트리밍 XML 문서에 추가할 수 있습니다.

    표 17. 매개변수
    이름 유형 설명
    요소 이름 문자열 배열에 나열된 각 문자열과 연결된 XML 요소의 이름입니다 data .
    데이터 배열 내부 wrappingElement에 중첩된 각 요소에 할당할 값 목록입니다.
    래핑 요소 문자열 elementName.
    표 18. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 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(문자열 이름, 문자열 값)

    XML 문서의 요소에 속성을 추가합니다.

    startDocument(), startElement() 또는 writeTextElement() 메서드를 호출한 후 writeAttribute() 메서드를 호출하여 연결된 XML 요소에 속성을 추가할 수 있습니다.

    표 19. 매개변수
    이름 유형 설명
    이름 문자열 XML 요소의 속성 이름입니다.
    문자열 XML 요소의 속성 값입니다.
    표 20. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

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

    XML 문서의 요소에 속성을 추가합니다.

    startDocument(), startElement() 또는 writeTextElement() 메서드를 호출한 후 writeAttributes() 메서드를 호출하여 연결된 XML 요소에 속성을 추가할 수 있습니다.

    표 21. 매개변수
    이름 유형 설명
    속성맵 객체 XML 요소와 연결할 속성 이름과 값을 포함하는 키 및 값의 맵입니다. 예:
    {
    'attributeOne':'attributeValue',
    'attributeTwo':'attributeValue'
    }
    표 22. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    이 예에서는 idNumber, officeLocationdepartment 라는 속성을 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(문자열 데이터)

    XML 문서에 CDATA를 추가합니다.

    writeCDataElement() 메서드를 호출한 후 writeCData() 메서드를 호출하여 요소 내에 CDATA를 추가할 수 있습니다.

    표 23. 매개변수
    이름 유형 설명
    데이터 문자열 CDATA 요소에서 CDATA 키워드 뒤에 포함할 값입니다.
    표 24. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    이 예제에서는 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(문자열 이름, 문자열 데이터, 객체 프리픽스)

    XML 문서에 CDATA 요소를 추가합니다.

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

    표 25. 매개변수
    이름 유형 설명
    이름 문자열 CDATA 요소의 이름입니다.
    데이터 문자열 옵션입니다. CDATA 요소를 구문 분석할 데이터의 유형입니다.
    프리픽스 객체 옵션입니다. CDATA 요소에 포함된 하위 요소와 값의 맵입니다. 예:
    {
    'prefixOne':'prefixValue',
    'prefixTwo':'prefixValue'
    }
    writeNamespace()를 사용하여 XML 요소의 프리픽스를 네임스페이스와 연결해야 합니다.
    표 26. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    이 예시에서는 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(문자열 텍스트)

    XML 문서에 텍스트를 추가합니다.

    writeCharacters() 메서드를 사용하여 XML 문서의 섹션에 문자열 데이터를 삽입합니다.

    표 27. 매개변수
    이름 유형 설명
    텍스트 문자열 XML 문서의 섹션에 추가할 텍스트입니다.
    표 28. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 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(문자열 주석)

    XML 문서에 주석을 추가합니다.

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

    표 29. 매개변수
    이름 유형 설명
    설명 문자열 포함할 의견 텍스트입니다.
    표 30. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 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)

    XML 문서에 문서 유형 정의를 추가합니다.

    startDocument() 메서드를 호출한 후 writeDtd() 메서드를 호출하여 XML 문서에 유효한 XML 문서 유형 정의를 추가할 수 있습니다.

    표 31. 매개변수
    이름 유형 설명
    DTD 문자열 유효한 XML 문서 유형 정의의 이름입니다.
    표 32. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

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

    XML 문서의 요소에 네임스페이스를 추가합니다.

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

    표 33. 매개변수
    이름 유형 설명
    프리픽스 문자열 XML 네임스페이스에 대한 프리픽스입니다.
    네임스페이스URI 문자열 옵션입니다. 네임스페이스의 URI입니다.
    표 34. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 회사 루트 요소에 네임스페이스와 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)

    XML 문서의 루트 요소에 네임스페이스를 추가합니다.

    startDocument() 또는 startElement() 메서드를 호출한 후 writeNamespaces() 메서드를 호출하여 연결된 XML 요소에 대한 네임스페이스를 선언할 수 있습니다.

    표 35. 매개변수
    이름 유형 설명
    네임스페이스 맵 객체 XML 문서의 루트 요소와 연결할 네임스페이스 프리픽스 및 URI를 포함하는 키 및 값의 맵입니다. 예:
    {
    'namespaceOne':'namespaceValue',
    'namespaceTwo':'namespaceValue'
    }
    표 36. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    이 예에서는 회사 루트 요소에 두 개의 네임스페이스와 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(문자열 이름, 문자열 텍스트, 객체 프리픽스)

    XML 문서에 단일 XML 요소를 추가합니다.

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

    표 37. 매개변수
    이름 유형 설명
    이름 문자열 XML 요소의 이름입니다.
    텍스트 문자열 XML 요소의 값입니다.
    프리픽스 객체 옵션입니다. XML 요소와 연결된 프리픽스 및 값의 맵입니다. 예:
    {
    'prefixOne':'prefixValue',
    'prefixTwo':'prefixValue'
    }
    writeNamespace()를 사용하여 XML 요소의 프리픽스를 네임스페이스와 연결해야 합니다.
    표 38. 반환
    유형 설명
    XML 스트리밍 API 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 직원에 대한 정보가 포함된 세 개의 요소를 포함하는 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();
    }