2013-07-29 2 views
0

CQ CRX (Adobe DAM)에 여러 복합 메타 데이터 값을 저장하려고합니다. 여러 개의 단순 메타 데이터 값은 자산 메타 데이터 노드의 다중 값 속성입니다. 복합 메타 데이터 값은 자산 메타 데이터 노드의 하위 노드입니다. 그러나 아래 예제처럼 여러 개의 복잡한 메타 데이터 값은 어떨까요? CRX (JCR)에서 어떤 예도 찾을 수 없습니다. (어쩌면 내가 RDF 태그 마커 메타 데이터를 포장해야합니까?)여러 개의 컴플렉스 메타 데이터 값을 CRX에 저장합니다. 즉, xmpDM : 마커

<xmpDM:markers> 
    <xmpDM:marker> 
    <xmpDM:name>name01</xmpDM:name> 
    <xmpDM:startTime>18645250f44100</xmpDM:startTime> 
    <xmpDM:duration>1000</xmpDM:duration> 
    </xmpDM:marker> 
    <xmpDM:marker> 
    <xmpDM:name>name02</xmpDM:name> 
    <xmpDM:startTime>18645250f44101</xmpDM:startTime> 
    <xmpDM:duration>1000</xmpDM:duration> 
    </xmpDM:marker> 
</xmpDM:markers> 

답변

1

그것은 직렬화 xmpDm 저장하는 것이 가능 : 다중 값 필드의 요소로 마커 요소를. 그러나 xmpDm : 마커의 속성을 쿼리 내에서 직접 처리 할 수 ​​없다는 단점이 있습니다.

개인적으로 자산의 메타 데이터 노드 아래에있는 각 마커 요소에 대한 마커 하위 노드를 만들고 xmpDm : 마커 하위 요소 각각에 대한 하위 노드를 만듭니다. 각 하위 노드는 해당 xmpDm : marker 요소의 속성을 포함합니다. 마커 유형 : 그럼

//given you have the content resource of your asset 
Resource metaData = assetResource.getChild(DamConstants.METADATA_FOLDER); 
Node node = metaData.adaptTo(Node.class); 

// assume your already transformed your xml nodes into a list of marker objects 
for(Marker marker : markers){ 
    Node markerNode = node.addNode(marker.getName()); 
    node.setProperty(....) 
} 
+0

가 어디 markerNode이 xmpDM 것을 저장 다음과 같이

아주 쉽게 할 수 있는가? 그것은 nt : 구조화되지 않은 노드가 될 것 같네요? 마커가 xmpDM의 일부인 것으로 표시되는 방법 : 마커가 아닌 xmpDM : 트랙? – zacheusz

+0

기본적으로 CQ는 다른 노드 유형을 사용하도록 지시하지 않는 한 nt : 구조화되지 않은 노드를 만듭니다. 저장소 수준에서 xmp spec의 sematics를 반영하려면 네임 스페이스와 노드 정의를 설정해야합니다. http://jackrabbit.apache.org/node-type-notation.html을 참조하십시오. 저장소 및 제약 조건을 모델에 바인딩 할 수 있습니다. 다른 옵션 (및 내가 선호하는 옵션)은 응용 프로그램 수준에서 제약 조건을 구현하고 nt : unstructurd를 사용하여 데이터를 저장하는 것입니다. 경험에 따라 인생을 편하게 만듭니다. 즉, – Thomas

+0

즉, xmpDM 네임 스페이스 및 태그는 이미 dam (/ libs/dam/options/metadata/xmpMM, /libs/dam/nodetypes/dam.cnd)에 정의되어 있지만 해당 노드 유형은 없습니다. DAM이 이해할 수 있도록 여러 복잡한 메타 데이터 값을 반영하는 적절한 방법이 무엇인지 궁금합니다. – zacheusz