;
; ELEMENT-VISIBILITY.INI
;
; This file controls the visibility of metadata elements for product types 
; known to the underlying file manager instance.
; 
; Specify the interpretation policy for this file. This can take one of two values:
;    show: Definitions in this file indicate metadata keys which should be SHOWN
;    hide: Definitions in this file indicate metadata keys which should be HIDDEN
;
;  If the policy is 'show' and an element does NOT appear in this file, it will be 
;  hidden. Conversely, if the policy is 'hide' and an element does NOT appear in 
;  this list, it will be shown.

interpretation.policy = hide

; Next, define element visibility on a per-product-type basis.
; To specify definitions for a particular product type, first declare the product type 
; by enclosing its URN in square brackets on its own line, e.g.:
; [urn:oodt:GenericFile]
; (without the leading ';', obviously) and then add element visibility definitions below. 
;
; Element visibility definitions take three forms:
;     visibility.always:        will be {shown/hidden} regardless of authentication
;     visibility.anonymous:     will be {shown/hidden} for anonymous users
;     visibility.authenticated: will be {shown/hidden} for authenticated users
; Note that {shown/hidden} is determined by the interpretation.policy for the file. That is, 
; if the interpretation policy is "show", then the keys under visibility.always will always
; be shown. If the interpretation is "hide", however, those same keys will always be
; hidden.
; 
;
;
; Definitions under the product type label [*] will be applied to all product types and 
; merged with any product-type-specific definitions which may come later in the file.
[*]
visibility.always[] = 
visibility.anonymous[] = 
visibility.authenticated[] = 

; EXAMPLE of product-type specific override:
; Definitions for the FHCRC Hanash (Annexin-LAMR) product type
;
;[urn:edrn:FHCRCHanashAnnexinLamr]
;visibility.always[] = 
;visibility.anonymous[] = 
;visibility.authenticated[] =  


