RFC: XML structure for asking a server for log info

Folks

This is my first posting to this list.

The context of the following XML is simply a client-server set up, where the
server is logging transactions, and a client wants to retrieve part of the
log.

I have dummied up an XML request doc for the client. What you see below is
almost identical to what we'll probably start using next week. Ie I'm not
waiting for ratification :-).

Is anyone working on this sort of thing, or would like to at least comment
on this?

<!-- ======================= -->
<!-- Generic History Request -->
<!-- ======================= -->

<Txn>
	<TxnType>History</TxnType>
	<ReqType>Interactive</ReqType>		<!-- Ie not batched. -->
	<ReqContext>Generic</ReqContext>

<!-- Specify the data the requestor wants back.	-->
<!-- These 2 are mutually exclusive.			-->

	<TxnType>Summary</TxnType>	<!-- Return keys of all records found. Thus get
record count. -->

	<!-- xor -->

	<TxnType>Detail</TxnType>	<!-- Return data for the 1 record requested. -->

<!-- Specify the keys the requestor wants to search for.		-->
<!-- A key may match several records. What's returned is		-->
<!-- a list, where every element of the list is a key set.		-->
<!-- Each key set is a set of keys which uniquely identifies	-->
<!-- an individual record. So, we can use TxnType Summary		-->
<!-- to get this list of keys, and then use TxnType Detail		-->
<!-- and 1 key set, to get 1 records. Well, it's an idea.		-->
<!-- These are not, or need not be, mutually exclusive.			-->

	<Keys>								<!-- Record selection keys. -->
		<UserID>External system's user ID</UserID>

		<!-- and/or -->

		<SystemID>External system's system ID</SystemID>

		<!-- and/or -->

		<TxnSource>Internal system's ID of external system, eg TCP/IP
address</TxnSource>

		<!-- and/or -->

		<TxnType>'Logon' | 'Logoff' | 'Create' | ...</TxnType>

		<!-- and/or -->

		<RefID>123</RefID>				<!-- External system's txn ID. -->

		<!-- and/or -->

		<TxnID>123</TxnID>				<!-- Internal system's unique txn ID. -->

		<!-- and/or -->

		<StartTime>Records after UTC 1</StartTime>
		<EndTime>Records before UTC 2</EndTime>

		<!-- and/or -->

		<SomeTag>SomeValue</SomeTag>
	</Keys>

<!-- Specify where the requestor wants the output sent.	-->
<!-- These are not, or need not be, mutually exclusive.	-->

	<ReqAction>Report</ReqAction>
	<Destination>
		<Address>Sender</Address>		<!-- Ie return to sender. -->
	</Destination>

	<!-- and/or -->

	<ReqAction>TCP/IP</ReqAction>
	<Destination>
		<Machine>Some address</Machine>
		<Port>Some port</Port>
	</Destination>

	<!-- and/or -->

	<ReqAction>Email</ReqAction>
	<Destination>
		<Address>ron@redrock.com.au</Address>
		<Address>fred@flintrock.com.au</Address>
	</Destination>

	<!-- and/or -->

	<ReqAction>Print</ReqAction>
	<Destination>
		<Printer>Network name of printer</Printer>
	</Destination>

	<!-- and/or -->

	<ReqAction>Fax</ReqAction>
	<Destination>
		<Fax>Network name of fax</Fax>
	</Destination>

	<!-- and/or -->

	<ReqAction>File</ReqAction>
	<Destination>		<!-- Some systems may user Unix file name syntax. -->
		<Filename>\\Machine\D:\Temp\file.xml</Filename>
	</Destination>

	<!-- and/or -->

	<ReqAction>SQL Insert</ReqAction>
	<Destination>
		<ServerName>Name of SQL server</ServerName>
		<AccessPermission>I have a blank cheque</AccessPermission>
		<DatabaseName>Name of database</DatabaseName>
		<TableName>Name of table</TableName>
		<Keys>...</Keys>
	</Destination>
</Txn>

<!-- ======================== -->
<!-- Specific History Request -->
<!-- ======================== -->

<Txn>
	<TxnType>History</TxnType>
	<ReqType>Interactive</ReqType>		<!-- Ie not batched. -->
	<ReqSubj>LAT</ReqSubj>
	<ReqContext>Specific</ReqContext>

<!-- Specify the data the requestor wants back.	-->
<!-- As in the Generic History Request.			-->

<!-- Specify the keys the requestor wants to search for.	-->
<!-- As in the Generic History Request, plus the following	-->
<!-- sub-system-specific keys.								-->
<!-- Just use '=' test with keys, or SQL syntax like '03%'?	-->
<!-- These are not, or need not be, mutually exclusive.		-->

	<Keys>								<!-- Record selection keys -->
		<PhoneNumber>'0395249035'</PhoneNumber>

		<!-- and/or -->

		<ReqType>Order</ReqType>

		<!-- and/or -->

		<ReqAction>Create</ReqAction>
	</Keys>
</Txn>

TIA.

Ron Savage
Work: ron@redrock.com.au
Home: ron@savage.net.au
http://savage.net.au/index.html

Received on Wednesday, 3 May 2000 19:59:59 UTC