Title: GILS Overview
1XML Encoding Rules (XER)
Rob Bull bull_at_crxnet.com
2Original Requirements...
- An immediate need (Nov. 1998)
- An abstract specification of search was needed to
respond to the OpenGIS Consortium RFP for Catalog
Services - CORBA, COM, Z39.50, SQL, and LDAP) - XML (eXtensible Markup Language) chosen as the
notational syntax for the Catalog Services search
specification
3Basic Concept of XER
- Rules to convert between XML and BER (Basic
Encoding Rules) for a protocol specified in ASN.1
(Abstract Syntax Notation) - Standardized rules for transforming
- BER encoded structures into equivalent XML
structures - XML encoded structures into equivalent BER
structures
4Scope...
- ASN.1 is used in a variety of applications,
protocols, and network environments with various
encoding rules (e.g., BER, PER, DER) - XML provides a facility for representing
character string structures and their markup
rules - initial XER focus is Z39.50-1995 (ISO 23950)
Search and Retrieval protocol - In the Z39.50 community
- ASN.1 is used with BER
- potentially applicable to LDAP (lightgweight
directory access protocol) and SNMP (simple
network management protocol)
5For example...
- PDU CHOICE searchRequest 22 IMPLICIT
SearchRequest, searchResponse 23 IMPLICIT
SearchResponse, - SearchRequest SEQUENCE resultSetName
17 IMPLICIT InternationalString, databaseName
s 18 IMPLICIT SEQUENCE OF DatabaseName,
query 21 Query - SearchResponse SEQUENCE
resultCount 23 IMPLICIT
INTEGER, numberOfRecordsReturned 24
IMPLICIT INTEGER, nextResultSetPosition
25 IMPLICIT INTEGER,
searchStatus 22 IMPLICIT
BOOLEAN, resultSetStatus
26 IMPLICIT INTEGER, records
Records OPTIONAL,
6XML Encoding SearchRequest
-
- lt?xml version'1.0' ?gtltsearch
xmlns"urnoid1.2.840.10003.2.1"gt
ltsearchRequestgt ltresultSetNamegt 1
lt/resultSetNamegt ltdatabaseNamesgt
xxdefault lt/databaseNamesgt ltquerygt
query on next slide lt/querygt
lt/searchRequestgtlt/searchgt
7XML Encoding Query Detail
- ltquerygt lttype-1gt ltrpnQuerygt
ltattributeSetgt BIB1 lt/attributeSetgt
ltrpngt ltrpngt operand next slide
lt/rpngt ltrpngt operand next slide
lt/rpngt ltoperatorgt AND lt/operatorgt
lt/rpngt lt/rpnQuerygt
lt/type-1gtlt/querygt
8XML Encoding Operand Detail
- ltoperandgt ltattributeValuegt CreationDate
lt/attributeValuegt ltattributeValuegt Greater Than
or Equal lt/attributeValuegt ltattributeValuegt
Date lt/attributeValuegt lttermgt 1995-01-01
lt/termgtlt/operandgt
9XML Encoding SearchResponse
- lt?xml version'1.0' ?gtltsearch
xmlns"urnoid1.2.840.10003.2.1"gt
ltsearchResponsegt ltresultCountgt 76
lt/resultCountgt ltnumberOfRecordsReturnedgt0
lt/numberOfRecordsReturnedgt
ltnextResultSetPositiongt 0 lt/nextResultSetPosit
iongt ltsearchStatusgt lttrue/gtlt/searchStatusgt
lt/searchResponsegtlt/searchgt
10Development Approach...
- e-mail list to discuss XER design and issues
- Participants/listeners include
- commercial (large, small)
- desktop software suppliers, telecoms suppliers
- database software suppliers
- Z39.50 and ASN.1 toolkit suppliers and
consultants - academic
- research
- Xer syntax and rules have been discussed and a
draft set of rules created
11Development Approach...
- Software developed
- Profile for Z39.50 over HTTP discussion paper
- Presentation to ASN.1 committee at Geneva in June
1999 - has already spawned interest such as ONE-2 project
12Decisions and Proposals...
- Three categories of decisions and proposals
- decisions where consensus is reached
- proposals that generally affect XER
- proposals that specifically affect XER and Z39.50
13Consensus Reached...
- The XER generated XML should be readily
understandable - XER is generally applicable to ASN.1
- XER requires well-formed XML
- No distinction between explicit, implicit
- encode and decode assumes XER is implicit
- applications need to know ASN.1 and can make BER
implicit or explicit - ASN.1 1994 has concept of automatic tags
14Consensus Reached...
- named values as empty elements, so its not
- ltprotocolVersiongtversion-1, version-2lt/protocolVer
siongt - but it is
- ltprotocolVersiongtltversion-1/gtltversion-2/gtlt/protoco
lVersiongt - uses XML namespace attribute to identify
particular XML - non-validating
- some aspects of the XML record structure can be
inferred from well-formed values - beyond the inferred structure various methods
exist, there is always the base ASN.1
specification for validation
15Proposals...
- XML namespace decisions
- adding private PDUs
- how to represent tags for OIDs
- Testbed
- z39.50 client (BER)
- BER/XER gateway (XER)
- XER/BER gateway (XER)
- Z39.50 server (BER)
16Draft XML Encoding Rules
- 7.1 General rules for encoding7.2 Encoding of a
boolean data value7.3 Encoding of an integer
data value7.4 Encoding of an enumerated data
value7.5 Encoding of a real data value7.6
Encoding of a bitstring data value7.7 Encoding
of an octetstring data value7.8 Encoding of a
null data value7.9 Encoding of a sequence data
value7.10 Encoding of a sequence-of data
value7.11 Encoding of a set data value7.12
Encoding of a set-of data value
17Draft XML Encoding Rules
- 7.13 Encoding of a choice data value
- 7.14 Encoding of a ASN.1 tagged data value
- 7.15 Encoding of an open type
- 7.16 Encoding of an instance-of data value
- 7.17 Encoding of a data value of the embedded-pdv
type - 7.18 Encoding of an object identifier data value
- 7.19 Encoding of a data value of the external
type - 7.20 Encoding for data values of the restricted
character string types - 7.21 Encoding for data values of the unrestricted
character string type - 7.22 Encoding for data values of the any
character string type - 7.23 Encoding for data values of the general
string type - 7.24 Encoding for data values of the visible
character string type
18Profile for Z39.50 over HTTP
- Discussion paper, second draft, April 1999
- Architectural Issues
- Z39.50 is described in ASN.1 but encoding is via
XER - requirement for stateful/stateless applications
- stateless - single HTTP request/response sequence
comprises an entire Z-association - stateful - a Z-association is maintained across
multiple TCP/IP sessions - Z39.50 PDUs will be encapsulated within HTTP
protocol messages using the Search method
19Profile for Z39.50 over HTTP
- proposed approaches to mapping HTTP requests and
responses to Z39.50 requests and responses - considerations for
- stateful, stateless
- Z39.50 state-machine
- how do we handle trickier services such as
access control, resource control, segmentation,
trigger resource control
20Software Developed so far...
- European Commission, Joint Research Centre,
Ispra, Italy - On http//perlz.jrc.it/ a library for handling
XER encoded packets with Perl is available - The Z39.50 library contains, as an example, a
gateway from XER to BER and back - BER to XML conversion library (Warnock/ Gamiel)
- demonstration utility, software description
21Opportunities.
- XML developers
- leverage investments in ASN.1-based applications
already interoperable - ASN.1 developers
- leverage investments in XML-based applications
coming up on the Internet -
22Further information...
- XER home page http//asf.gils.net/xer
- with pointers to
- documentation on XER concept
- details on rules defined
- software
- example PDUs
- decisions and proposals
- XER discussion list and the list archive
- Profile for Z39.50 over HTTP
- http//lcweb.loc.gov/z3950/agency/zhttp.html
23Credits...
This presentation incorporates content from a
presentation to theASN.1 Committee Geneva, June
9, 1999 byEliot Christian, U.S. Geological
Survey and Nick Hibma, E.C. Joint Research
Commission