xml/psRadiantOne.Format.Namespace.ps1xml

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
  <ViewDefinitions>
    <!--
      Directory namespace: naming contexts, the entries beneath them, the views over them and the
      attribute handling attached to them.
    -->
    <View>
      <Name>psRadiantOne.NamingContextNode</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.NamingContextNode</TypeName>
      </ViewSelectedBy>
      <!--
        label is not shown: for a root it repeats dn, and for a child it is the rdn, which dn
        already carries.
      -->
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>dn</Label>
            <Width>36</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>nodeType</Label>
            <Width>14</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>isActive</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>isRoot</Label>
            <Width>7</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>hasChildren</Label>
            <Width>12</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>primaryDataSource</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>dn</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>nodeType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>isActive</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>isRoot</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>hasChildren</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>primaryDataSource</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.NamingContextNode.List</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.NamingContextNode</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>dn</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>label</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>nodeType</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>description</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>isActive</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>isRoot</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>hasChildren</PropertyName>
              </ListItem>
              <ListItem>
                <Label>childNamingContexts</Label>
                <ScriptBlock>$_.childNamingContexts -join ', '</ScriptBlock>
              </ListItem>
              <ListItem>
                <PropertyName>primaryDataSource</PropertyName>
              </ListItem>
              <ListItem>
                <Label>datasources</Label>
                <ScriptBlock>$_.datasources -join ', '</ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>psRadiantOne.Entry</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.Entry</TypeName>
      </ViewSelectedBy>
      <!--
        A search returns every entry beneath the base, each carrying its whole attribute set. The
        table counts them; the list below prints them.
      -->
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>dn</Label>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>rdn</Label>
            <Width>30</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>attributes</Label>
            <Width>11</Width>
            <Alignment>Right</Alignment>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>dn</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>rdn</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>@($_.attributes).Count</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.Entry.List</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.Entry</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>dn</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>rdn</PropertyName>
              </ListItem>
              <ListItem>
                <Label>attributes</Label>
                <ScriptBlock>($_.attributes | ForEach-Object { "$($_.name): $($_.values -join ', ')" }) -join [System.Environment]::NewLine</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>children</Label>
                <ScriptBlock>if ($null -ne $_.children) { @($_.children).Count }</ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>psRadiantOne.ViewFile</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.ViewFile</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>viewName</Label>
            <Width>32</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>lastModified</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>viewName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>if ($null -ne $_.lastModified) { ([datetime]$_.lastModified).ToLocalTime().ToString('g') }</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.LinkedAttributeDefault</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.LinkedAttributeDefault</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>backlinkAttr</Label>
            <Width>28</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>forwardLinkAttrs</Label>
            <Width>30</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>sourceObjectClasses</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>backlinkAttr</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.forwardLinkAttrs -join ', '</ScriptBlock>
              </TableColumnItem>
              <TableColumnItem>
                <ScriptBlock>$_.sourceObjectClasses -join ', '</ScriptBlock>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.VirtualTreeProperties</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.VirtualTreeProperties</TypeName>
      </ViewSelectedBy>
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <PropertyName>namingContext</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>directoryView</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>schema</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>isActive</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>dataSourceType</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>dataSourceName</PropertyName>
              </ListItem>
              <ListItem>
                <PropertyName>baseDn</PropertyName>
              </ListItem>
              <ListItem>
                <Label>virtualAttributes</Label>
                <ScriptBlock>$_.virtualAttributes -join ', '</ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <View>
      <Name>psRadiantOne.SpecialAttributes</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.SpecialAttributes</TypeName>
      </ViewSelectedBy>
      <!--
        Five collections of rules, four of them usually empty. Each is summarised to the rule it
        holds rather than left to print as System.Object[].
      -->
      <ListControl>
        <ListEntries>
          <ListEntry>
            <ListItems>
              <ListItem>
                <Label>linkedAttributes</Label>
                <ScriptBlock>($_.linkedAttributes | ForEach-Object { "$($_.backlinkAttr) from $($_.forwardLinkAttrs -join ', ')" }) -join [System.Environment]::NewLine</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>memberAttribute</Label>
                <ScriptBlock>$_.dynamicGroupSettings.memberAttribute</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>dynamicGroups</Label>
                <ScriptBlock>($_.dynamicGroupSettings.dynamicGroups | ForEach-Object { $_.dn }) -join [System.Environment]::NewLine</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>unnestGroups</Label>
                <ScriptBlock>$_.unnestGroups -join ', '</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>referentialIntegrityRules</Label>
                <ScriptBlock>@($_.referentialIntegrityRules).Count</ScriptBlock>
              </ListItem>
              <ListItem>
                <Label>attributeUniquenessRules</Label>
                <ScriptBlock>@($_.attributeUniquenessRules).Count</ScriptBlock>
              </ListItem>
            </ListItems>
          </ListEntry>
        </ListEntries>
      </ListControl>
    </View>
    <!--
      Caches, content, link and object builder items listed as tables.
    -->
    <View>
      <Name>psRadiantOne.Cache</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.Cache</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>label</Label>
            <Width>36</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>cacheType</Label>
            <Width>14</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>isActive</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>isConfigured</Label>
            <Width>13</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>isInitialized</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>label</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>cacheType</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>isActive</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>isConfigured</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>isInitialized</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.CacheRealTimeConnector</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.CacheRealTimeConnector</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>connectorId</Label>
            <Width>36</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>type</Label>
            <Width>14</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>dataSourceName</Label>
            <Width>16</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>isConfigured</Label>
            <Width>13</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>name</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>connectorId</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>type</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>dataSourceName</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>isConfigured</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>name</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.CacheRealTimeConnectorType</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.CacheRealTimeConnectorType</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>name</Label>
            <Width>14</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>label</Label>
            <Width>16</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>configured</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>label</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>configured</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.ComputedAttribute</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.ComputedAttribute</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>name</Label>
            <Width>32</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>active</Label>
            <Width>7</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>priority</Label>
            <Width>9</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>expression</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>active</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>priority</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>expression</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.ComputedAttributeFunction</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.ComputedAttributeFunction</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>signature</Label>
            <Width>60</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>hasBooleanReturn</Label>
            <Width>17</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>isIncompatibleWithOtherFunctions</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>signature</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>hasBooleanReturn</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>isIncompatibleWithOtherFunctions</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.ContentRdnAttribute</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.ContentRdnAttribute</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>name</Label>
            <Width>48</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>mappedName</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>mappedName</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
    <View>
      <Name>psRadiantOne.LinkParameterTreeAttribute</Name>
      <ViewSelectedBy>
        <TypeName>psRadiantOne.LinkParameterTreeAttribute</TypeName>
      </ViewSelectedBy>
      <TableControl>
        <TableHeaders>
          <TableColumnHeader>
            <Label>name</Label>
            <Width>48</Width>
          </TableColumnHeader>
          <TableColumnHeader>
            <Label>attrType</Label>
          </TableColumnHeader>
        </TableHeaders>
        <TableRowEntries>
          <TableRowEntry>
            <TableColumnItems>
              <TableColumnItem>
                <PropertyName>name</PropertyName>
              </TableColumnItem>
              <TableColumnItem>
                <PropertyName>attrType</PropertyName>
              </TableColumnItem>
            </TableColumnItems>
          </TableRowEntry>
        </TableRowEntries>
      </TableControl>
    </View>
  </ViewDefinitions>
</Configuration>