1 / 17

XML Examples

XML Examples. CSC 436 – Fall 2005 Slides to be used in conjunction with class notes. Example Toy Store. <xml version=“1.0” standalone=“yes”> <toystore> <Manuf> <Name>Fischer-Price</Name> <Addr>2 Main Street</Addr> <Phone>401-555-3344</Phone> <Toy> <Name>Farm House</Name>

rods
Download Presentation

XML Examples

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML Examples CSC 436 – Fall 2005 Slides to be used in conjunction with class notes

  2. Example Toy Store <xml version=“1.0” standalone=“yes”> <toystore> <Manuf> <Name>Fischer-Price</Name> <Addr>2 Main Street</Addr> <Phone>401-555-3344</Phone> <Toy> <Name>Farm House</Name> <Num>0001</Num> <Price>14.00</Price> </Toy> <Toy> <Name>Truck</Name> <Num>0002</Num> <Price>12.00</Price> </Toy> … </Manuf> <Manuf> … </Manuf>

  3. Example: An Address Book <person> <name> MacNiel, John </name> <greet> Dr. John MacNiel </greet> <addr>1234 Huron Street </addr> <addr> Rome, OH 98765 </addr> <tel> (321) 786 2543 </tel> <fax> (321) 786 2543 </fax> <tel> (321) 786 2543 </tel> <email> jm@abc.com </email> </person> Exactly one name At most one greeting As many address lines as needed (in order) Mixed telephones and faxes As many as needed

  4. A DTD for the address book <!DOCTYPE addressbook [ <!ELEMENT addressbook (person*)> <!ELEMENT person (name, greet?, address*, (fax | tel)*, email*)> <!ELEMENT name (#PCDATA)> <!ELEMENT greet (#PCDATA)> <!ELEMENT address (#PCDATA)> <!ELEMENT tel (#PCDATA)> <!ELEMENT fax (#PCDATA)> <!ELEMENT email (#PCDATA)> ]>

  5. projects: title budget managedBy employees: name ssn age Example Project Database

  6. Two DTDs for the Project DB <!DOCTYPEdb[ <!ELEMENTdb(projects,employees)> <!ELEMENTprojects (project*)> <!ELEMENTemployees (employee*)> <!ELEMENTproject (title, budget, managedBy)> <!ELEMENTemployee (name, ssn, age)> ... ]> <!DOCTYPEdb[ <!ELEMENTdb (project | employee)*> <!ELEMENTproject (title, budget, managedBy)> <!ELEMENTemployee (name, ssn, age)> ... ]>

  7. Specifying ID and IDREF attributes <!DOCTYPE family [ <!ELEMENT family (person)*> <!ELEMENT person (name)> <!ELEMENT name (#PCDATA)> <!ATTLIST person id ID #REQUIRED mother IDREF #IMPLIED father IDREF #IMPLIED children IDREFS #IMPLIED> ]>

  8. Some conforming data <family> <person id="jane" mother="mary" father="john"> <name> Jane Doe </name> </person> <person id="john" children="jane jack"> <name> John Doe </name> </person> <person id="mary" children="jane jack"> <name> Mary Doe </name> </person> <person id="jack" mother=”mary" father="john"> <name> Jack Doe </name> </person> </family>

  9. An alternative specification <!DOCTYPE family [ <!ELEMENT family (person)*> <!ELEMENT person (mother?, father?, children, name)> <!ATTLIST person id ID #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT mother EMPTY> <!ATTLIST mother idref IDREF #REQUIRED> <!ELEMENT father EMPTY> <!ATTLIST father idref IDREF #REQUIRED> <!ELEMENT children EMPTY> <!ATTLIST children idrefs IDREFS #REQUIRED> ]>

  10. The revised data <family> <person id = "jane”> <name> Jane Doe </name> <mother idref = "mary”></mother> <father idref = "john"></father> </person> <person id = "john”> <name> John Doe </name> <children idrefs = "jane jack"> </children> </person> ... </family>

  11. <!DOCTYPE bank [ <!ELEMENT bank ( ( account | customer | depositor)+)> <!ELEMENT account (account-number branch-name balance)> <! ELEMENT customer(customer-name customer-street customer-city)> <! ELEMENT depositor (customer-name account-number)> <! ELEMENT account-number (#PCDATA)> <! ELEMENT branch-name (#PCDATA)> <! ELEMENT balance(#PCDATA)> <! ELEMENT customer-name(#PCDATA)> <! ELEMENT customer-street(#PCDATA)> <! ELEMENT customer-city(#PCDATA)> ]> Bank DTD

  12. Bank DTD with Attributes • Bank DTD with ID and IDREF attribute types. <!DOCTYPE bank-2[ <!ELEMENT account (branch, balance)> <!ATTLIST account account-number ID # REQUIRED owners IDREFS # REQUIRED> <!ELEMENT customer(customer-name, customer-street, customer-city)> <!ATTLIST customer customer-id ID # REQUIRED accounts IDREFS # REQUIRED> … declarations for branch, balance, customer-name, customer-street and customer-city]>

  13. <bank-2> <account account-number=“A-401” owners=“C100 C102”> <branch-name> Downtown </branch-name> <branch>500 </balance> </account> <customer customer-id=“C100” accounts=“A-401”> <customer-name>Joe</customer-name> <customer-street>Monroe</customer-street> <customer-city>Madison</customer-city> </customer> <customer customer-id=“C102” accounts=“A-401 A-402”> <customer-name> Mary</customer-name> <customer-street> Erin</customer-street> <customer-city> Newark </customer-city> </customer> </bank-2> XML data with ID and IDREF attributes

  14. <xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema> <xsd:element name=“bank” type=“BankType”/> <xsd:element name=“account”><xsd:complexType> <xsd:sequence> <xsd:element name=“account-number” type=“xsd:string”/> <xsd:element name=“branch-name” type=“xsd:string”/> <xsd:element name=“balance” type=“xsd:decimal”/> </xsd:squence></xsd:complexType> </xsd:element> …..definitions of customer and depositor …. <xsd:complexTypename=“BankType”><xsd:squence> <xsd:element ref=“account” minOccurs=“0” maxOccurs=“unbounded”/> <xsd:element ref=“customer” minOccurs=“0” maxOccurs=“unbounded”/> <xsd:element ref=“depositor” minOccurs=“0” maxOccurs=“unbounded”/> </xsd:sequence> </xsd:complexType> </xsd:schema> XML Schema Version of Bank DTD

  15. MAN_TIME MSRP PHONE ADDRESS NAME AGE_GRP TOY_NUM N MAN_ID 1 TOY MANUF MAKES IN_STOCK SOLD_YTD CONTACT NAME N LOCATION NAME EMAIL DATE_ORD QUANTITY ORDERS DATE_DELIV M CUST_NUM ADDRESS CUSTOMER NAME NUM_CHILD 1 LNAME FNAME PARENT N CHILD BDATE NAME Toy ER Diagram

  16. Hierarchy with Toy as Root MSRP NAME AGE_GRP TOY_NUM SOLD_YTD TOY 1 IN_STOCK 1 PHONE ADDRESS 1 CUST_NUM MAN_ID N MANUF CUSTOMER CONTACT NAME NUM_CHILD 1 ADDRESS LOCATION NAME NAME EMAIL MAN_TIME DATE_ORD QUANTITY LNAME FNAME DATE_DELIV N CHILD BDATE NAME

  17. Toy XML Schema <xsd:schema xmlns:xsd=http://www.w3.org/2001/XMLSchema> <xsd:element name=“toy” type=“ToyType”/> <xsd:element name=“manuf”><xsd:complexType> <xsd:sequence> <xsd:element name=“phone” type=“xsd:string”/> <xsd:element name=“man_id” type=“xsd:string”/>… <xsd:element name=“man_time” type=“xsd:decimal”/> </xsd:squence></xsd:complexType> </xsd:element name> <xsd:element name=“customer”> …</xsd:element name> <xsd:complexTypename=“ToyType”><xsd:squence> <xsd:element ref=“manuf” minOccurs=“1” maxOccurs=“1”/> <xsd:element ref=“customer” minOccurs=“0” maxOccurs=“unbounded”/> </xsd:sequence> </xsd:complexType> </xsd:schema>

More Related