XMLStreamingAPI - スコープ指定
大規模なストリーミング XML ペイロードをビルドし、それを REST または SOAP 要求で使用して大量のデータをサードパーティ API に送信します。非ストリーミングオプション用の XML 文字列としてペイロードを作成することもできます。
sn_ih 名前空間識別子とともに使用します。たとえば、この API を使用して ワークフロースタジオ スクリプトステップで XML ペイロードを作成し、戻り値を REST ステップに渡して、要求をサードパーティサービスに送信できます。詳細については、「ワークフロースタジオ スクリプトステップ」を参照してください。
このクラスにはコンストラクターはありません。代わりに、XMLStreamingBuilder クラスの build() メソッドを呼び出して、XMLStreamingAPI オブジェクトを返す必要があります。
API 呼び出し順
XML ペイロードを生成するには、まず XMLStreamingBuilder を使用してビルダーオブジェクトをインスタンス化し、 次に XMLStreamingAPI クラスのメソッドを呼び出します。
- 1. XMLStreamingBuilder:ビルダーオブジェクトを作成する
- 下記のメソッドを次の順番で使用して、ビルダーオブジェクトを作成します。
- XMLStreamingBuilder():XMLStreamingBuilder オブジェクトをインスタンス化します。
- withAttachment():オプション。添付ファイルとして XML ドキュメントを作成し、ストリーミング添付ファイル [streaming_attachment] テーブルに格納します。このメソッドを呼び出さない場合、API はペイロードを XML 文字列としてビルドします。
- expiresAt():オプション。添付ファイルの有効期限が切れる時刻を設定します。デフォルトは false です。withAttachment() メソッドも呼び出す必要があります。
- build():XMLStreamingAPI オブジェクトを返します。
- 2. XMLStreamingAPI:XML ペイロードをビルドする
- 下記のメソッドを次の順番で使用して、XML ペイロードを作成します。
- startDocument(): XML ドキュメントの最上位の親要素を作成します。
- XML ドキュメントに子要素を生成するメソッド:writeTextElement()、startElement()、writeArray() など。
- 要素の属性を生成するメソッド:writeAttribute()、writeNamespace()、writeDtd() など。
- endElement(): XML 要素を閉じます。
- endDocument: 最上位の親要素を閉じます。
- getXMLString() または getAttachmentId():作成した XML 文字列または添付ファイル ID を返します。
- close():XMLStreamingAPI オブジェクトを閉じます。
サイズ制限
この API を介して生成されたペイロードは、次のサイズ制限を超えることはできません。
- 添付ファイル:200 MB
- 文字列:5 MB
次の例では、XML ドキュメントを作成し、定義された有効期限と一緒にストリーミング添付ファイル [streaming_attachment] テーブルに格納する方法を示します。
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.XMLStreamingBuilder()
.withAttachment() // Creates the XML document in streaming mode within an attachment.
.expiresAt(ttl) // Sets an expiration date for the attachment.
.build(); // Creates the XMLStreamingAPI object.
builder.startDocument("Employee") // Begins generating the XML document.
.writeTextElement("firstName","John") // Writes a "firstName" element and value.
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.startElement("address") // Adds an "address" parent element.
.writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement() // Adds a closing tag for the "address" element.
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument() // Stops generating the XML document.
gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
} catch (err) {
gs.log(err);
} finally {
builder.close();
}一方この例は、スクリプトステップで API を使用してペイロードを XML 文字列として作成する方法を示しています。このオプションを使用すると、5 MB 未満のペイロードを作成できます。
(function execute(inputs, outputs) {
var builder = new sn_ih.XMLStreamingBuilder().build();
builder.startDocument("Employee")
.enablePrettyPrint()
.writeTextElement("firstName","John")
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.startElement("address")
.writeTextElement("streetAddress", "21 2nd Street")
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement()
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument()
outputs.payload = builder.getXMLString();
})(inputs, outputs);出力:
<?xml version="1.0" encoding="UTF-8"?>
<firstName>John</firstName>
<lastName>Smith</lastName>
<age>25</age>
<address>
<streetAddress>21 2nd Street</streetAddress>
<city>Santa Clara</city>
<state>CA</state>
<postalCode>11111</postalCode>
</address>
<phoneNumber>
<type>home</type>
<number>212 555-1234</number>
<type>fax</type>
<number>646 555-4567</number>
</phoneNumber>XMLStreamingAPI - close()
XMLStreamingAPI オブジェクトを閉じます。XML ドキュメントの構築後は、このメソッドを呼び出してストリームを閉じる必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| なし |
例
次の例では、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 形式を追加する必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
次の例では、addres 要素にプリティプリントの書式設定を追加する方法を示します。
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.XMLStreamingBuilder()
.withAttachment()
.expiresAt(ttl)
.build();
builder.startDocument("Employee")
.writeTextElement("firstName","John")
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.enablePrettyPrint()
.startElement("address")
.writeTextElement("streetAddress", "21 2nd Street")
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement()
.disablePrettyPrint()
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument()
gs.log(builder.getAttachmentId());
} catch (err) {
gs.log(err);
} finally {
builder.close();
}
XMLStreamingAPI - enablePrettyPrint()
XML 要素または要素のツリーにプリティプリントの書式設定を追加します。
書式設定を終了するには、disablePrettyPrint() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
次の例では、addres 要素にプリティプリントの書式設定を追加する方法を示します。
try {
var ttl = new GlideDateTime("2011-01-01 12:00:00");
var builder = new sn_ih.XMLStreamingBuilder()
.withAttachment()
.expiresAt(ttl)
.build();
builder.startDocument("Employee")
.writeTextElement("firstName","John")
.writeTextElement("lastName","Smith")
.writeTextElement("age","25")
.enablePrettyPrint()
.startElement("address")
.writeTextElement("streetAddress", "21 2nd Street")
.writeTextElement("city", "Santa Clara")
.writeTextElement("state", "CA")
.writeTextElement("postalCode", "11111")
.endElement()
.disablePrettyPrint()
.startElement("phoneNumber")
.writeTextElement("type","home")
.writeTextElement("number","212 555-1234")
.writeTextElement("type","fax")
.writeTextElement("number","646 555-4567")
.endElement()
.endDocument()
gs.log(builder.getAttachmentId());
} catch (err) {
gs.log(err);
} finally {
builder.close();
}
XMLStreamingAPI - endDocument()
XML ドキュメントの構造を終了します。
startDocument() メソッドを呼び出してストリーミング XML ドキュメントを整理した後に、ドキュメントの構造の最後で endDocument() メソッドを呼び出します。ストリーミング XML ドキュメントの構造を正常に構築するには、これら 2 つのメソッドを一緒に使用する必要があります。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 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 要素に終了タグを追加します。
- startElement() メソッドを使用して開始タグを追加する。
- endElement() メソッドを使用して終了タグを追加する。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング 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 - スコープ指定」を参照してください。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 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 メソッドを呼び出すことも必要です。
| 名前 | タイプ | 説明 |
|---|---|---|
| rootElement | 文字列 | オプション。XML ドキュメントのルート要素、または最上位の親要素。 |
| namespaceDefinitionMap | オブジェクト | オプション。後続の要素リスト内の名前空間のキーと値、および関連する値のマップ。例: |
| タイプ | 説明 |
|---|---|
| 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(文字列 name, オブジェクト namespaceMap, オブジェクト attributeMap, 文字列 prefix)
XML 要素に開始タグを追加します。
- startElement() メソッドを使用して開始タグを追加する。
- endElement() メソッドを使用して終了タグを追加する。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | XML 要素の名前。 |
| namespaceMap | オブジェクト | オプション。後続の要素リスト内の名前空間のキーと値、および関連する値のマップ。例: |
| attributeMap | オブジェクト | オプション。後続の要素リスト内の属性のキーと値、および関連する値のマップ。 |
| プリフィックス | 文字列 | オプション。XML 要素のプリフィックス。 |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング 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(文字列 elementName, アレイ data, 文字列 wrappingElement)
事前定義されたテキストを含むネストされた要素のリストを、ストリーミング XML ドキュメントに追加します。
startDocument() メソッドを呼び出した後、writeArray() メソッドを呼び出して、ネストされた要素のブロックをストリーミング XML ドキュメントに追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| elementName | 文字列 | data アレイの一覧にある各文字列に関連付けられた XML 要素の名前。 |
| data | アレイ | wrappingElement 内にネストされた各要素に割り当てる値のリスト。 |
| wrappingElement | 文字列 | 各 elementName を含む親要素。 |
| タイプ | 説明 |
|---|---|
| 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(文字列 name, 文字列 value)
XML ドキュメント内の要素に属性を追加します。
startDocument()、startElement()、または writeTextElement() メソッドを呼び出した後、writeAttribute() メソッドを呼び出して、関連する XML 要素に属性を追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | XML 要素の属性の名前。 |
| value | 文字列 | XML 要素の属性の値。 |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング 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(オブジェクト attributeMap)
XML ドキュメント内の要素に属性を追加します。
startDocument()、startElement()、または writeTextElement() メソッドを呼び出した後、writeAttributes() メソッドを呼び出して、関連する XML 要素に複数の属性を追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| attributeMap | オブジェクト | XML 要素に関連付ける属性名と値を含む、キーと値のマップ。例: |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
この例では、idNumber、officeLocation、および department という属性を employee 要素に追加します。
try {
var ttl = new GlideDateTime('2011-01-01 12:00:00');
var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
var streamingDocument = builder.build();
streamingDocument.startDocument('Employee')
.writeAttributes({'idNumber':'12345', 'officeLocation':'San Diego', 'department':'Sales'})
.writeTextElement('firstName', 'John')
.writeTextElement('lastName', 'Smith')
.writeTextElement('age', '25')
.endDocument();
gs.log(streamingDocument.getAttachmentId());
} catch (err) {
gs.log(err);
} finally {
streamingDocument.close();
}
XMLStreamingAPI - writeCData(文字列 data)
CDATA を XML ドキュメントに追加します。
writeCDataElement() メソッドを呼び出した後、writeCData() メソッドを呼び出して要素内に CDATA を追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| data | 文字列 | CDATA 要素内の CDATA キーワードの後に含める値。 |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
この例では、CDATA を CDATA 要素 timeWorked に追加します。
try {
var ttl = new GlideDateTime('2011-01-01 12:00:00');
var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
var streamingDocument = builder.build();
streamingDocument.startDocument('Employee')
.writeTextElement('firstName', 'John')
.writeTextElement('lastName', 'Smith')
.writeTextElement('age', '25')
.writeCDataElement('timeWorked')
.writeCData('< 2 years')
.endDocument();
gs.log(streamingDocument.getAttachmentId());
} catch (err) {
gs.log(err);
} finally {
streamingDocument.close();
}
XMLStreamingAPI - writeCDataElement(文字列 name, 文字列 data, オブジェクト prefix)
CDATA の要素を XML ドキュメントに追加します。
startDocument() メソッドを呼び出した後、writeCDataElement() メソッドを呼び出して、CDATA の要素を XML ドキュメントに追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | CDATA の要素の名前。 |
| data | 文字列 | オプション。CDATA の要素の解析対象となるデータのタイプ。 |
| プリフィックス | オブジェクト | オプション。CDATA の要素に含まれる子要素と値のマップ。たとえば、次のようになります。 writeNamespace() を使用して、XML 要素のプリフィックスを名前空間に関連付ける必要があります。 |
| タイプ | 説明 |
|---|---|
| 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(文字列 text)
XML ドキュメントにテキストを追加します。
XML ドキュメントのセクションに文字列データを挿入するには、writeCharacters() メソッドを使用します。
| 名前 | タイプ | 説明 |
|---|---|---|
| text | 文字列 | XML ドキュメントのセクションに追加するテキスト。 |
| タイプ | 説明 |
|---|---|
| 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(文字列 comment)
XML ドキュメントにコメントを追加します。
startDocument() メソッドを呼び出した後、writeComment() メソッドを呼び出して、XML ドキュメントにコメントを追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| comment | 文字列 | 含めるコメントのテキスト。 |
| タイプ | 説明 |
|---|---|
| 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 ドキュメントタイプ定義を追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| dtd | 文字列 | 有効な XML ドキュメントタイプ定義の名前。 |
| タイプ | 説明 |
|---|---|
| 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(文字列 prefix, 文字列 namespaceURI)
XML ドキュメント内の要素に名前空間を追加します。
startDocument()、startElement()、または writeTextElement() メソッドを呼び出した後、writeNamespace() メソッドを呼び出して、関連する XML 要素に名前空間を追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| prefix | 文字列 | XML 名前空間のプリフィックス。 |
| namespaceURI | 文字列 | オプション。名前空間の URI。 |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
次の例は、company というルート要素に名前空間と URI を追加し、ネストされた companyName 要素にプリフィックスを割り当てる方法を示します。
try {
var ttl = new GlideDateTime('2011-01-01 12:00:00');
var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
var streamingDocument = builder.build();
streamingDocument.startDocument('company')
.writeNamespace('x','https://www.servicenow.com')
.writeTextElement('companyName', 'ServiceNow')
.writeNamespace('x')
.endDocument();
gs.log(streamingDocument.getAttachmentId());
} catch (err) {
gs.log(err);
} finally {
streamingDocument.close();
}
XMLStreamingAPI - writeNamespaces(オブジェクト namespaceMap)
XML ドキュメント内のルート要素に名前空間を追加します。
startDocument() または startElement() メソッドを呼び出した後、writeNamespaces() メソッドを呼び出して、関連する XML 要素の名前空間を宣言できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| namespaceMap | オブジェクト | XML ドキュメントのルート要素に関連付ける名前空間のプリフィックスと URI を含む、キーと値のマップ。例: |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
この例では、company というルート要素に 2 つの名前空間と URI を追加し、その後ネストされた要素に適切なプリフィックスを割り当てます。
try {
var ttl = new GlideDateTime('2011-01-01 12:00:00');
var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
var streamingDocument = builder.build();
streamingDocument.startDocument('company')
.writeNamespaces({'x':'https://www.servicenow.com', 'y':'https://www.developer.servicenow.com'})
.writeTextElement('companyName', 'ServiceNow')
.writeNamespace('x')
.writeTextElement('devFramework', 'UI Framework')
.writeNamespace('y')
.endDocument();
gs.log(streamingDocument.getAttachmentId());
} catch (err) {
gs.log(err);
} finally {
streamingDocument.close();
}
XMLStreamingAPI - writeTextElement(文字列 name, 文字列 text, オブジェクト prefix)
単一の XML 要素を XML ドキュメントに追加します。
startDocument() メソッドを呼び出した後、writeTextElement() メソッドを呼び出して、単一の XML 要素を XML ドキュメントの構造に追加できます。
| 名前 | タイプ | 説明 |
|---|---|---|
| name | 文字列 | XML 要素の名前。 |
| text | 文字列 | XML 要素の値。 |
| prefix | オブジェクト | オプション。XML 要素に関連付けられたプリフィックスと値のマップ。たとえば、次のようになります。 writeNamespace() を使用して、XML 要素のプリフィックスを名前空間に関連付ける必要があります。 |
| タイプ | 説明 |
|---|---|
| XMLStreamingAPI | ペイロードをビルドするためのストリーミング XML オブジェクト。 |
次の例は、ある従業員に関する情報が入った要素を 3 つ含む XML ドキュメントを作成する方法を示します。
try {
var ttl = new GlideDateTime('2011-01-01 12:00:00');
var builder = new sn_ih.XMLStreamingBuilder().withAttachment().expiresAt(ttl);
var streamingDocument = builder.build();
streamingDocument.startDocument('Employee')
.writeTextElement('firstName', 'John')
.writeTextElement('lastName', 'Smith')
.writeTextElement('age', '25')
.endDocument();
gs.log(streamingDocument.getAttachmentId());
} catch (err) {
gs.log(err);
} finally {
streamingDocument.close();
}