XML 문자열을 스키마로 해석
| 항목 | 값 |
|---|---|
| 화면 이름 | Parse XML as schema |
| 식별자 | parseXmlAsSchemaV2 |
| 지원 실행 방식 | Batch, Streaming |
| 범주 | 파일 (File), 구조체 (Struct) |
| 반환 자료형 | Struct |
지정한 스키마로 XML 문자열을 해석하며 스키마에 없는 필드는 무시합니다.
입력 인자
| 이름 | 지정 여부 | 자료형 | 의미와 조건 |
|---|---|---|---|
Input schema | 필수 | Type<Struct> | XML 문자열을 해석할 스키마 정의입니다. |
Xml | 필수 | Expression<String> | 해석할 XML 문자열입니다. |
Attribute prefix | 선택 | Literal<String> | 태그 속성에 사용할 접두사입니다. |
Ignore namespace | 선택 | Literal<Boolean> | 요소와 속성의 이름 공간을 무시할지 지정합니다. 예를 들어 <ns1:author ns2:attr="value" />를 <author attr="value" />처럼 처리합니다. 기본값은 false입니다. |
Output mode | 선택 | Enum<Simple, With errors> | simple 모드는 잘못된 입력을 포함한 파싱 오류가 발생하면 null을 반환합니다. with errors 모드는 해석한 XML을 ok, 오류를 errors 필드에 담은 구조체를 반환합니다. |
Value tag | 선택 | Literal<String> | 자식은 없고 속성은 있는 요소에서 값에 사용할 태그입니다. |
입출력 예시
예시 1: 기본 동작
인자 값:
Input schema: Struct<id:String, airport:Struct<id:String, miles:Integer>>Xml:xmlAttribute prefix: nullIgnore namespace: nullOutput mode:SIMPLEValue tag: null
| xml | 출력 |
|---|---|
| <airline> <id>XB-112</id> <airport> <id>JFK</id> <miles>2000</miles> </airport> </airline> | { airport: { id: JFK, miles: 2000, }, id: XB-112, } |
예시 2: 기본 동작
이름 공간을 무시하면 입력의 이름 공간을 제거하여 해석합니다. 따라서 스키마에 이름 공간을 포함한 키는 일치하지 않습니다.
인자 값:
Input schema: Struct<name:String, _attribute:String, email:String, address:Struct<nevermatches:street:String, city:String, state:String, zip:String>>Xml:xmlAttribute prefix: _Ignore namespace: trueOutput mode:SIMPLEValue tag: null
| xml | 출력 |
|---|---|
| <ns1:person ns1:attribute="tall"> <ns1:name>John Doe</ns1:name> <email>john.doe@exampl... | { _attribute: tall, address: { city: Exampleville, *... |
예시 3: null 처리
입력 XML에 요청한 필드가 없으면 해당 필드는 null입니다.
인자 값:
Input schema: Struct<id:String, airport:Struct<id:String, miles:Integer>>Xml:xmlAttribute prefix: nullIgnore namespace: nullOutput mode:SIMPLEValue tag: null
| xml | 출력 |
|---|---|
| <airline> <id>XB-112</id> <airport> <id>JFK</id> </airport> </airline> | { airport: { id: JFK, miles: null, }, id: XB-112, } |
예시 4: null 처리
요청한 스키마가 더 작으면 스키마에 있는 필드만 해석합니다.
인자 값:
Input schema: Struct<id:String>Xml:xmlAttribute prefix: _Ignore namespace: nullOutput mode:SIMPLEValue tag: null
| xml | 출력 |
|---|---|
| <airline> <id>XB-112</id> <airport> <id>JFK</id> </airport> </airline> | { id: XB-112, } |
예시 5: null 처리
이름 앞에 속성 접두사를 붙여 XML 속성을 읽습니다.
인자 값:
Input schema: Struct<id:String, airport:Struct<_id:String, miles:Integer>>Xml:xmlAttribute prefix: _Ignore namespace: nullOutput mode:SIMPLEValue tag: null
| xml | 출력 |
|---|---|
| <airline> <id>XB-112</id> <airport id="JFK"> <miles>2000</miles> </airport> </airline> | { airport: { _id: JFK, miles: 2000, }, id: XB-112, } |
긴 구조값 안의 줄임표는 생략한 내용을 나타냅니다.