XMLStreamingAPI - 범위 지정됨

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 40분
  • 대량 데이터를 외부 공급업체 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. XML 문서에서 자식 요소를 생성하는 메서드(예: writeTextElement(),startElement()writeArray()).
    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 - 닫기()

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

    표 1. 매개변수
    이름 유형 설명
    없음
    표 2. 반환
    유형 설명
    void

    예제

    다음 예제에서는 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 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")
          .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(String rootElement, Object namespaceDefinitionMap)

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

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

    표 13. 매개변수
    이름 유형 설명
    rootElement 문자열 옵션입니다. XML 문서의 루트 요소 또는 최상위 상위 요소
    namespaceDefinitionMap 객체 옵션입니다. 네임스페이스에 대한 키와 값, 그리고 후속 요소 목록에 있는 관련 값의 맵입니다. 예:
    {
    'namespaceOne':'namespaceValue',
    'namespaceTwo':'namespaceValue'
    }
    표 14. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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'
    }
    attributeMap 객체 옵션입니다. 후속 요소 목록에 있는 속성 및 연관된 값에 대한 키와 값의 맵입니다.
    프리픽스 문자열 옵션입니다. XML 요소의 접두사입니다.
    표 16. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 XML 객체입니다.

    다음 예제에서는 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")
          .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, Array data, String wrappingElement)

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

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

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

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

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

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

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

    이 예제에서는 직원 요소에 idNumber라는 특성을 추가합니다.

    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)

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

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

    표 21. 매개변수
    이름 유형 설명
    attributeMap 객체 XML 요소와 연결할 속성 이름과 값을 포함하는 키 및 값의 맵입니다. 예:
    {
    'attributeOne':'attributeValue',
    'attributeTwo':'attributeValue'
    }
    표 22. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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(String prefix, String namespaceURI)

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

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

    표 33. 매개변수
    이름 유형 설명
    프리픽스 문자열 XML 네임스페이스의 접두사입니다.
    네임스페이스URI 문자열 옵션입니다. 네임스페이스의 URI입니다.
    표 34. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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. 반환
    유형 설명
    XMLStreamingAPI 페이로드를 구성하기 위한 스트리밍 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();
    }