Bidi Communications Schema
The Bidi Communications Schema describes the information about a printer or print server that is available through the bidi spooler APIs, IBidiSpl and IBidiSpl2. It also describes the format used to get the information.
For a full description of the Bidi Communications Schema, see the Bidi Communications Schema and Bidi Communications Schema Reference topics of the Windows Driver Kit (WDK) documentation.
A hardware vendor can extend the schema for special device requirements. For more information, see Extending the Bidi Communications Schema.
To access and set information using IBidiSpl2, you formulate your requests as XML strings that conform to one of the request schemas described in Bidi Request and Response Schemas. Information is returned as an XML string that conforms to one of the response schemas. For details about constructing requests, see the Constructing a Bidi Communications Schema Query topic of the Windows Driver Kit (WDK) documentation. To view the WDK documentation if it is not installed on your computer, visit the WDK site.
To access the information using IBidiSpl, use the schema to construct a string that identifies the information you want. Then use the appropriate IBidiSpl APIs with the constructed string.
For the predefined schema, such a string begins with "\Printer.", then any subordinate property names until you reach the desired property, and finally the data name. Use a period (.) to separate each property name, and use a colon (:) before the data name. See the examples below.
Think of the schema elements as arranged in a tree structure. There is no limit on the depth or breadth of this tree. The following are the definitions for the elements of the schema:
- Property: A node inside the Property tree. It can have zero or more children, and can have other properties and data as children. It may contain a list of values or other properties. It can represent a feature, a compound feature or a print system attribute (such as driver name).
- Data: A single piece or homogeneous list of data. Data is composed of a data name, a data type, and a data value. Data is referenced by data name, and only under properties. For example, "\Printer.Finishing.Staple:Installed". Data does not have children. It is a leaf node.
- Property Path: A path to a property. The ' . ' is used as the delimiter.
- Data Path: A path to a data. The ' : ' is used as the delimiter to indicate retrieval of data.
For example, to see if the printer supports stapling, use
"\Printer.Finishing.Staple:Installed" //pre-inline !
To see if the top input bin is installed, use
"\Printer.Layout.InputBins.Tray1:Installed" //pre-inline !
To determine the media type in the top input bin, use
"\Printer.Layout.InputBins.Tray1:MediaType" //pre-inline !