DSpace新增input-type——XMLMetadata篇
DSpace新增input-type目錄
- 安裝篇
- TextEditor篇
- FileUpload篇
- XMLMetadata篇
雖然以XML取名,但其實這是我自己設定的格式,以div搭配class屬性來儲存資料,而不是真的XML。
概念上是樹狀結構的儲存模式,長得如下圖:
節點Node用來包含節點或輸入表單Input,輸入表單Input則是用來輸入值用的。他們各自的屬性如下表:
Node 節點 |
|
node的舉例如下:(紅色部份表示是值)
<div class="node">
<div class="node-type">node</div>
<div class="node-title">教師</div>
<div class="node-repeatable">true</div>
<div class="node-content-temp">
<div class="node">
……
</div>
<div class="node">
……
</div>
</div>
<div class="node-contents">
<div class="node">
……
</div>
<div class="node">
……
</div>
</div>
<div class="node-contents">
<div class="node">
……
</div>
<div class="node">
……
</div>
</div>
<div class="node-contents">
<div class="node">
……
</div>
<div class="node">
……
</div>
</div>
</div>
input 輸入表單 |
|
input範例:(紅色部份表示值)
<div class="node">
<div class="node-type">input</div>
<div class="node-title">作品語言</div>
<div class="node-repeatable">true</div>
<div class="input-required">true</div>
<div class="input-type">dropdown</div>
<select class="input-options">
<option value="zh_TW">中文</option>
<option value="en">English</option>
<option value="jp">日本語</option>
</select>
<div class="input-default-value">zh_TW</div>
<div class="input-values">zh_TW</div>
<div class="input-values">jp</div>
</div>
範例與即時適用
&<div class="xml-root" id="xmlRootExample" style="display:none">
<div class="node">
<div class="node-type">node</div>
<div class="node-title">秋番動畫</div>
<div class="node-repeatable">true</div>
<div class="node-content-temp">
<div class="node">
<div class="node-type">input</div>
<div class="node-title">作品題名</div>
<div class="node-repeatable">true</div>
<div class="input-required">true</div>
<div class="input-type">onebox</div>
<div class="input-default-value"></div>
</div>
<div class="node">
<div class="node-type">input</div>
<div class="node-title">作品語言</div>
<div class="node-repeatable">false</div>
<div class="input-required">true</div>
<div class="input-type">dropdown</div>
<select class="input-options">
<option value="zh_TW">中文</option>
<option value="en">English</option>
<option value="jp">日本語</option>
</select>
<div class="input-default-value">zh_TW</div>
</div>
</div>
<div class="node-contents">
<div class="node">
<div class="node-type">input</div>
<div class="node-title">作品題名</div>
<div class="node-repeatable">true</div>
<div class="input-required">true</div>
<div class="input-type">texteditor</div>
<div class="input-default-value"></div>
<div class="input-values">神薙</div>
<div class="input-values">kaminagi</div>
</div>
<div class="node">
<div class="node-type">input</div>
<div class="node-title">作品語言</div>
<div class="node-repeatable">false</div>
<div class="input-required">true</div>
<div class="input-type">list</div>
<select class="input-options">
<option value="zh_TW">中文</option>
<option value="en">English</option>
<option value="jp">日本語</option>
</select>
<div class="input-default-value">zh_TW</div>
<div class="input-values">jp</div>
</div>
</div>
</div>
※fileupload要搭配DSpace才能使用,FCKeditor找不到空間上傳暫時,因此texteditor也不能用,請多見諒
如果想知道怎麼運作的,可以直接看看原始碼喔。
在input-forms.xml設定xmlmetadata
跟一般的field不同的是,xmlmetadata會需要輸入<default-value>。要注意的是,<default-value>裡面的資料不允許斷行,可以利用上面的輸出成<default-value>程式過濾器來輸入。
把上面的範例輸入進去之後,<field>的程式碼會像是這個樣子:
修改完畢之後重新啟動Tomcat就可以了。
未完成的部份
- 驗證階段也要顯示xmlmetadata。
可以參考display-item.jsp的修改去做,加油吧。