Blacklight Walkthrough


1 - Basics

    1.1 Open a file

    1.2 GUI Overview

    1.3 Interacting with the Treeview


2 - Filtering

    2.1 Basic Filters

    2.2 Multiple Terms

    2.3 Special Search Operators

    2.4 Hierarchal constraints

    2.5 Ignoring hierarchal constraints

    2.6 Mixing it up

 

 

 

1 Basics     back to top


1.1 Open a file back to top


Open a file either with the File Open button, or by dropping an XML on the BlackLight executable or a shortcut



1.2 GUI Overview     back to top


    - Tree View: all of the element tags organized into a tree structure

    - Display: syntax-free version of the files contents in the display, currently showing the whole file

    - Text Colors:

          Elements Tags - Blue

          Attribute Labels - Magenta

          Text data - White

 

 

Display:

-         Shows the hierarchal XML Data in an easier to read, nearly syntax free style, similar to that of the anti-markup language YAML

Tree View:

-         Shows all of the elements in the XML file in a classic Tree View

-         Select>Enter for focus the display on that element

-         Right-click context menus with expand/collapse options

Filter:

-         Filters based on element tags (labels)

-         Filters Tree View while Typing, filters display with Enter

-         Support OR functionality by separating terms with space

-         Supports wildcards and hierarchical constraints

 



1.3 Interacting with the Treeview     back to top


Select and item in the Tree View and press Return (not the Numpad Enter. Shoddy, I know) causes the element to become focused in the display

 



2 Filtering     back to top


Understanding of all filter capacities is strictly unnecessary, but can result very precise portions of data being visible in the display!



2.1 Basic Filtering     back to top


Type 'data' in the filter bar. Notice how the Tree View changes as your type. Press enter to see the changes applied to the display as well

-          Note that the terms only need to be within the element title, not a complete match

-          Directly matched elements are shown in bright blue.

-          Parent's elements are shown in white

-          Other elements are shown only if they are siblings to a matched element, in grey

-          Only Parent elements are expanded

 



2.2. Multiple Terms     back to top


Spaces can be used to enter multiple terms, OR logic will be used

            -'prop data' will match to all terms containing 'prop' or 'data'

 



2.3 Search Operators     back to top


Basic wildcards '*' and '?' are supported for element names

-          '*' match any sequence of letters, numbers, or underscore, or nothing

-          Since whole matches are not required, you can think of any string as already wrapped in implied asterisks

o   e.g. The following product identical results 'spr' , 'spr*' , '*spr*'

-          '*' are useful for matching multiple patterns in long strings

o   E.g. 'sp*da' would match 'springdata', or 'splinedata' (assuming they exist) but not 'dataspline' or 'dampingspling'

-          '?' matches any single letter, number, or underscore

o   E.g. 'f?_' would match 'fx_' or 'fy_', but not 'front_' or 'f_'

 



2.4 Hierarchical Constraints     back to top


'/' strings multiple terms together into a hierarchical constraint

-          e.g. 'spr/data' requires a 'data' string match, and a 'spr' match in that parents element (CompressionData and ExtensionData under DapmerProperties don't meet the criteria)

 

Hierarchal constrains can span any number of levels, and a '*' can match all element on a particular level (a more complex file is shown)


- Note that there are effectively 3 constraints in this term

o   'dat' must match the element

o   'stiff' must match its parent

o   The 'great-grandparent' must match to 'bush'

 



2.5 Ignoring Hierarchal Constraints     back to top


** is like * but transverses hierarchal constraints

-          'spr** matchs all elements containing 'spr' in their tag or ancestry

Adding chars after ** can prevent the 'ancestor' to meet the match, the trailing must match in the actual element (but the leading chars can match anywhere)

-          e.g. 'spr**com' matches any descendants of element that contain 'spr' and have 'com' in their name

 



2.6 Mixing it up     back to top


Mixing up multiple search terms and operators can generate any specific data display you wish!

-          'dir' emements under 'bush' element + all splineData under 'stiff' including decendants + all splineData under 'damp' including decendants