5. Sự sắp xếp các Item con
8.2 Các kiểu của Node
NétđặcbiệtcủaJCRlàkhảnănghỗtrợkiểuchonode.
Kiểu nodequy địnhcácNode conhay cácProperty màNode đócóthể có hoặc bắtbuộcphảicó.
Mộtkiểunodebaogồmcácthànhphầnsau:
Bùi Vĩnh Phú 71 Đặng Đình
Vương
PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA
• Name: tên của kiểu . JCR quy định sẵn một số kiểu bao gồm các kiểu node chính có tên bắt đầu với “nt:” và các kiểu node phụ có tên bắt đầu với“mix:”.
• Supertype:mỗikiểunodecóthểlàmởrộngcủamộthaynhiềukiểunode khácvàkiểunodeđượcmở rộnglàSupertypecủakiểunodemở rộng. • Property Definitions: mỗi kiểu node quy định mộttập các thuộc tính mà
Node có kiểu này có thể có hay bắt buộc phải có. Đồng thờikiểu node cũngquyđịnh nhữngđặc điểmmàcácthuộctínhnàyphảicó, nhữngđặc điểmnàygọilàPropertyDefinition.
• Child Node Definitions: mỗi kiểu node quy định một tập các Node con mà Node có kiểu này có thể có hay bắt buộc phải có. Đồng thời kiểu nodecũngquyđịnhnhữngđặcđiểmmàcácNodeconcủaNodenàyphải có, nhữngđặcđiểmnàygọilàNodeDefinition.
• Mixin Status:JCR quy định mỗikiểu nodechỉ có thểlà kiểu nodechính haykiểunodephụ..
BùiVĩnhPhú 72 ĐặngĐình
Vương
PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA
8.2.1 Kiểu nodechính vàkiểu nodephụ
JCR quy định mỗi Node bắt buộc phải có một và chỉ một kiểu node chính và kiểu node chính này sẽ quy định những đặc điểm của các Node con và các thuộc tính màNodecókiểunàycóthểcó.
Ngoài một kiểu node chính duy nhất, JCR còn cho phép mỗi Node có thể có nhiều kiểu node phụ dùng để định nghĩa thêm những đặt tính mà Node có thể có. Kiểu node chính được lưu trong giá trị của thuộc tính jcr:primaryType và kiểu Node phụđược lưutronggiátrị củathuộctínhjcr:mixinTypes.DomỗiNodecóthểcónhiều kiểunodephụnênthuộctínhjcr:mixinTypes làthuộctínhđatrị
Kiểunodent:baselàSupertypecuảmọikiểunodechínhtrongRepository
8.2.2 Property definitions
MỗiPropertyDefinitioncủakiểunodechứacácthôngtinsau: • Name:têncủathuộctính.
• Type:kiểuthuộctính.
• Valueconstraints:miềngiátrịđượcgiớihạnchothuộctính.
• Default value: gíá trị mặc địnhcủa thuộc tính khi thuộc tính được tạo ra màkhôngxácđịnhrõgiátrị.
• Auto-created:chobiếtthuộctínhcótựđộngđượctạorakhiNodesỏhữu loạiNodeđượctạorahaykhông.
• Mandatory: cho biết thuộc tính là bắt buộc phải có trong Node hay không.
Bùi Vĩnh Phú 73 Đặng Đình
Vương
PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA
• On-parent-version:trạngtháicủathuộctínhdùngđể chobiếtnhữnggìsẽ được thực hiện khi một phiên bản mới của Node chứa thuộc tính được tạora.
• Read-only:chobiếtthuộctínhlàchỉđọchaykhông
Nodesởhữuthuộctínhhaykhông
• MultipleValues:chobiếtthuộctínhcóthểđatrịhaykhông.
8.2.3 Child Node Definitions
MỗiChildNodeDefinitioncủaloạiNodechứacácthôngtinsau: • Name:tênNodecon.
• Required Primary Node Types: các kiểu node chính mà Node con này phảicó(chỉcómộtvàchỉmộttrongcáckiểunodechínhnày)..
• Default Primary Node Type: Nếu trong quá trình tạo ra Node con mà không xác định kiểu node chính cho nó thì kiểu node chính này sẽ tự độngđượcgánchoNodecon.
• Required Mixin Node Types: các kiểu node phụ mà Node con này phải có.
• Default Mixin Node Types: các kiểu node phụ sẽ tự động được gán cho NodeconnếuđếnlúclưunộidụngNodeconmàvẫnchưađượcxácđịnh kiểunodephụ.
• Auto-created: cho biết Node con có tự động được tạo ra khi Node cha đượctạorahaykhông.
• Mandatory: chobiếtNodeconnàycóbắtbuộcphảicóhaykhông. • On-parent-version: trạngtháicủaNode condùngđểcho biếtnhữnggìsẽ
đượcthựchiệnkhimộtphiênbảnmớicủaNodechađượctạora.
Bùi Vĩnh Phú 74 Đặng Đình
Vương
PháttriểnCMSmodulechohệthốngIntranetcuảCôngtyTMA
• Read-only:chobiếtthuộctínhlàchỉđọchaykhông.
• Primary-Item: cho biết Node con này có phải là thành phần chính của Nodechahaykhông.
• Same-name siblings: cho biết có thể cho phép nhiều Node con khác có cùngtênvớiNodeconnàyhaykhông.