[]
dataPath 속성은 구문 분석된 데이터 내에서 레코드 컬렉션이 위치한 경로를 지정합니다.
일반적으로 다음과 함께 사용됩니다.
schema.type = "xml"
중첩 JSON 구조
fetch() 중 데이터 원본은 먼저 schema.type에 따라 구문 분석됩니다.
그 다음 dataPath를 사용하여 테이블을 채울 레코드 배열의 위치를 찾습니다.
구문 분석된 루트 값이 배열이 아닌 경우 dataPath를 정의해야 합니다.
fetch() 중 데이터 매니저는 최종적으로 해석된 레코드 컬렉션이 배열이기를 기대합니다. 루트 구문 분석 결과가 객체인 경우 레코드 배열을 포함하는 속성을 선택하기 위해 dataPath를 사용해야 합니다.
dataPath를 지정하지 않으면:
루트 구문 분석 결과가 레코드 컬렉션으로 처리됩니다.
루트 값이 배열이 아닌 경우 fetch() 중 오류가 발생합니다.
다음 XML 데이터를 가정해 보겠습니다.
<root>
<data>
<items>
<row>
<id>1</id>
<name>Alice</name>
</row>
<row>
<id>2</id>
<name>Bob</name>
</row>
</items>
</data>
</root>실제 레코드는 다음 위치에 있습니다.
root.data.items.row구성:
const table = dataManager.addTable("employees", {
data: `
<root>
<data>
<items>
<row>
<id>1</id>
<name>Alice</name>
</row>
<row>
<id>2</id>
<name>Bob</name>
</row>
</items>
</data>
</root>
`,
schema: {
type: "xml",
dataPath: "root.data.items.row"
}
});fetch() 후 테이블에는 두 개의 레코드가 포함됩니다.
dataPath는 중첩 JSON 데이터에도 사용할 수 있습니다.
예제:
const table = dataManager.addTable("employees", {
data: {
meta: { version: 1 },
payload: {
items: [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" }
]
}
},
schema: {
dataPath: "payload.items"
}
});테이블 레코드는 payload.items에서 추출됩니다.
dataPath는 점 표기법(dot notation)을 사용합니다.
각 세그먼트는 중첩 속성을 나타냅니다.
최종 해석 결과는 반드시 레코드 배열이어야 합니다.
해석된 경로가 존재하지 않거나 유효한 컬렉션을 참조하지 않는 경우 fetch() 중 오류가 발생합니다.
dataPath는:
구문 분석된 데이터에서 레코드 컬렉션을 선택합니다.
XML에서 일반적으로 필요합니다.
중첩 JSON에 사용할 수 있습니다.
반드시 배열로 해석되어야 합니다.
dataPath는 열이나 데이터 동작을 정의하지 않습니다.
열 구조는 schema.columns를 사용하여 별도로 구성합니다.