The XML Document Object ModelFor the purposes of the query language, the entire contents of the eRoom site are represented by a single virtual XML document. The format of this XML document is described by an XML schema. The site virtual XML document defines a path to every piece of accessible data in the site, so that nodes in the document can be selected using XPath syntax. Element names are derived from the Server Access API (SAAPI) names for the corresponding properties. Virtual XML Document ExampleThe following examples illustrate the site virtual XML document. The first example shows the levels above the facility level, and the second example shows the facility level and below, down to the level of individual items. Following the examples is an explanation of salient features.
<Site> <ID>{0CE5578C-20D5-4693-9BD2-DABD7F76BD32}</ID> <InvariantName>RRL6KDGVECJUNG6S3K6X65V5GI</InvariantName> <Name>My Site</Name> <SiteDomain>.mycompany.com</SiteDomain> <CommunityManager> <Communities> <Community> <ID>3</ID> <Name>Suburban</Name> <SiteFacilities> <SiteFacility> <DisplayName>My Facility</DisplayName> <ID>{6AC7B052-5BEE-11D4-A921-00105AAA1FFC}</ID> <URLName>myfac</URLName> <Facility> [See following example.] </Facility> </SiteFacility> </SiteFacilities> </Community> </Communities> </CommunityManager> </Site> The following example continues the document object model from the Facility level down to the level of properties. ...
<Facility> <ID>6AC7B052-5BEE-11D4-A921-00105AAA1FFC</ID> <URLName>myfac</URLName> <URL>http://www.server.com/eroom/myfac</URL> <Members> <Member type="erMemTypeUser"> <ID>12</ID> <LoginName>fred</LoginName> </Member> <Member type="erMemTypeUser"> <ID>13</ID> <LoginName>ted</LoginName> </Member> </Members> <Rooms> <Room> <ID>D6BC315E-670D-11D4-A925-00105AAA1FFC</ID> <URLName>myroom</URLName> <Members> <Member type="erMemTypeUser"> <ID>12</ID> <LoginName>fred</LoginName> </Member> </Members> <HomePage> <Description type="erTextTypePlain">here you are</Description> <Comments/> <Items> <Item type="erItemTypeFolderPage"> <ID>0_13a</ID> <Name>a folder</Name> <Description type="erTextTypePlain">folder of stuff</Description> <ModifyDate>2000-12-07T09:05:46-05:00</ModifyDate> <IsUnread>false</IsUnread> <AccessControl> <OpenAccessList> <Member type="erMemTypeUser"> <ID>12</ID> <LoginName>fred</LoginName> </Member> </OpenAccessList> </AccessControl> <Items> <Item type="erItemTypeNotePage"> <ID>0_13b</ID> <Name>a note</Name> <Description type="erTextTypePlain">noteworthy</Description> <ModifyDate>2000-12-12T13:21:32-05:00</ModifyDate> <IsUnread>true</IsUnread> <AccessControl> <OpenAccessList> <Member type="erMemTypeUser"> <ID>12</ID> <LoginName>fred</LoginName> </Member> </OpenAccessList> </AccessControl> <Items/> </Item> </Items> </Item> </Items> </HomePage> </Room> </Rooms> </Facility>
... Explanation of ExampleThe above example shows a facility with a single room and two members. The room contains two items:
Although it appears that much of the information is presented redundantly (i.e., a particular member’s information will appear in the facility members list, the room members list, and the OpenAccessList and EditAccessList of all objects that the member can open and/or edit), this XML document is conceptual only. While the user could issue queries that will return redundant information (i.e., get the complete member info of every member on the OpenAccessList of all items in the room), for most purposes this redundancy can be avoided. The data types used in the XML representation of eRoom data are the built-in XML data types described in the XML Schema Specification. In addition, complex types are built up from these primitives in the manner specified by the XML Schema Specification to describe specific eRoom data types. These types are defined in our published schema documents, which are located in the eRoomServer\Toolkit\XMLSchemas subdirectory. These types are documented and diagrammed in the Complex Types and Elements topic. Note: Character data constituting the content of the elements cannot contain the characters ’r;<’ and ’r;&’, so for HTML properties, these characters are replaced by the strings "&" and "<" respectively. For consistency's sake, the character '>' is also represented using the string ">". |