#sdf 1.4.32
(
    """
    This example has a prim, Root, with a reference to
    A.sdf. Root has an opinion about attr, which is
    private in A.sdf. This results in a property
    permission error. In addition, Root has opinions about
    a relationship and relational attribute that has been 
    marked private in A.sdf. This should also result in 
    permission errors, and the opinions should be ignored.

    There is another prim, Parent, with a child prim, Child.
    Parent has a reference to A.sdf, where Child is
    private. This results in a prim permission error.

    There is also a prim, Model, which inherits from
    _PrivateClass. Since _PrivateClass is private, this
    will result in an arc permission error.
    """
)

def "Root" (
    add references = @./A.sdf@</A>
)
{
    custom double attr = 2
    custom double localAttr = 3

    add rel privateRel = </Root.localAttr>
    add rel publicRel = </Root.A_attr>
}
def "Parent" (
    add references = @./A.sdf@</Parent>
)
{
    over "Child" 
    {
    }
}
def "_PrivateClass" (
    permission = private
)
{
    custom double attr = -1
}
def "Model" (
    add inherits = </_PrivateClass>
)
{
    custom double attr = 0
}
