Building the Profiles Access Class
In addition to the Profiles
database is the CustomerProfile
Python class. This object
performs XML input and output against the database, and exposes methods
for use by the XML Switch. The basic profile actions allow you to
retrieve, insert, update, and delete profiles. Arguments to these
methods are XML versions of profile data. By making the customer profile
packets in XML, it’s easy for other applications to generate and consume
the packets without any concern for the structure of the database, or
even how to access it directly. In fact, a CustomerProfile
can easily become the payload
of a SOAP message. A profile packet appears as:
<CustomerProfile id="555-99JKK39"> <firstname>John</firstname> <lastname>Doolittle</lastname> <address1>396 Evergreen Terrace</address1> <address2/> <city>Springfield</city> <state>WA</state> <zip>98072</zip> </CustomerProfile>
Note that the address2
element
exists, even though it is empty. The DTD for such a document appears
as:
<!ELEMENT firstname (#PCDATA)> <!ELEMENT lastname (#PCDATA)> <!ELEMENT address1 (#PCDATA)> <!ELEMENT address2 (#PCDATA)> <!ELEMENT city (#PCDATA)> <!ELEMENT state (#PCDATA)> <!ELEMENT zip (#PCDATA)> <!ATTLIST CustomerProfile id CDATA #REQUIRED> <!ELEMENT CustomerProfile (firstname, lastname, address1, address2, city, state, zip)>
An instance of the document using the DTD needs to have the declaration within the document as well:
<?xml version="1.0"?>
<!DOCTYPE CustomerProfile SYSTEM "CustomerProfile.dtd"> ...
Get Python & XML now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.