copyrighted material john tullis 6/1/2014 page 1 an xml purchase order john tullis depaul instructor...

35
Copyrighted material John Tullis 06/26/22 page 1 An XML Purchase Order John Tullis DePaul Instructor [email protected]

Upload: mya-roads

Post on 29-Mar-2015

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 1

An XML Purchase Order

John TullisDePaul [email protected]

Page 2: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 2

XML Order

Creating an XML purchase order

1st, the constraints.• It must be a valid XML document.• It must be a well-formed XML document.• Finally, it must make sense (e.g., it must expresses the requirements of expressing a purchase order.

To make sense, the recommendation made was to make sure your XML purchase order could handle the information provided in the purchase order example given in the EDI presentation given in week 4.

Page 3: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 3

XML Order

H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 . 5 5 5 . 5 5 5 5 F a x 5 5 5 . 5 5 5 . 5 5 5 6

T h e f o l l o w i n g n u m b e r m u s t a p p e a r o n a l l r e l a t e dc o r r e s p o n d e n c e , s h i p p i n g p a p e r s , a n d i n v o i c e s :P . O . N U M B E R : 3 4 5 6 1

T o : S h i p T o :A l f r e d A b e l P e t e P a i n f r e eA c m e A s p i r i n C o m p a n y H & P W a r e h o u s e1 0 1 X M L P a r s e r T r a i l 5 4 1 0 S e c r e t P a s s a g eK a u a i , H a w a i i 9 9 2 9 3 P l a n o , T X 7 5 2 9 9

P . O . D A T E R E Q U I S I T I O N E R S H I P V I A F . O . B . P O I N T T E R M S

N o v e m b e r 9 , 1 9 9 9 H e i d i H a p p y U S P S N / A N / A

aQ T Y U N I T D E S C R I P T I O N U N I T P R I C E T O T A L

5 1 2 E a c h 1 0 1 0 1 0 0 - R e g u l a r S t r e n g t h A s p i r i n 1 . 0 0 $ 5 1 2 . 0 0

4 5 C a s e 1 0 1 0 1 1 0 – E x t r a S t r e n g t h A s p i r i n 5 0 . 0 0 $ 2 , 2 5 0 . 0 0

S U B T O T A L $ 2 , 7 6 2 . 0 0

S A L E S T A X 0 . 0 0

S H I P P I N G & H A N D L I N G $ 2 5 . 0 0

O T H E R

T O T A L $ 2 , 7 8 7 . 0 0

1 . P l e a s e s e n d t w o c o p i e s o f y o u r i n v o i c e .

2 . E n t e r t h i s o r d e r i n a c c o r d a n c e w i t h t h e p r i c e s , t e r m s , d e l i v e r y m e t h o d ,a n d s p e c i f i c a t i o n s l i s t e d a b o v e .

3 . P l e a s e n o t i f y u s i m m e d i a t e l y i f y o u a r e u n a b l e t o s h i p a s s p e c i f i e d .

4 . S e n d a l l c o r r e s p o n d e n c e t o :H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 - 5 5 5 - 5 5 5 5 ; F a x 5 5 5 - 5 5 5 - 5 5 5 6

H e i d i H a p p y N o v e m b e r 9 , 1 9 9 9A u t h o r i z e d b y D a t e

Page 4: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 4

XML Order

Well-formedness & validity

Well-formed - the state of an XML document that conforms to all the rules for well-formedness expressed in the XML Specification. Well-formedness includes the presence of any sub-elements that are properly nested, as well as all properly declared entity/attribute references.

Valid - the state of an XML document that conforms to all the rules expressed in its DTD.

Page 5: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 5

XML Order

How can you be sure of validity & well-formedness?

You can use the Mark-1 eyeball. But it is easier to use an XML processor/parser.

To find one, search the Web for combinations like “XML + parser”. Examples include (but are not limited to):• XMLSpy (found at: www.xmlspy.com)• DataChannel XML• Larval• MSXML

Check out the XML/XSL/XLL Software section of http://www.oasis-open.org/cover/xml.html

Page 6: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 6

XML Order

How can you be sure it makes sense?

You have to use your eyes and your mind.

No validating XML parser can tell you whether or not the information you are expressing in your document makes sense based on your business need.

Therefore, it cannot tell you whether or not you are correctly specifying what you need for a purchase order - but it can tell you whether what you have expressed is both well-formed and valid.

Page 7: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 7

XML Order

Let’s begin

<?xml version="1.0" encoding="UTF-8"?>

<purchase_order>

</purchase_order>

Page 8: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 8

XML Order

Do some XML<?xml version="1.0" encoding="UTF-8"?>

<purchase_order>

</purchase_order>

<order_header>

</order_header>

<supplier_org>

</supplier_org>

<billing_info>

</billing_info>

<shipping_info>

</shipping_info>

<item_info>

</item_info>

<order_summary>

</order_summary>

Page 9: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 9

XML Order

Does it make sense?

Yes.

The order header provides information about the order that occurs up front.The supplier organization section provides information about the company fulfilling the order.The billing address section provides billing information.The shipping address section provides that information.The item information provides information about items.The order summary provides information about the order that occurs at the end.

Page 10: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 10

XML Order

H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 . 5 5 5 . 5 5 5 5 F a x 5 5 5 . 5 5 5 . 5 5 5 6

T h e f o l l o w i n g n u m b e r m u s t a p p e a r o n a l l r e l a t e dc o r r e s p o n d e n c e , s h i p p i n g p a p e r s , a n d i n v o i c e s :P . O . N U M B E R : 3 4 5 6 1

T o : S h i p T o :A l f r e d A b e l P e t e P a i n f r e eA c m e A s p i r i n C o m p a n y H & P W a r e h o u s e1 0 1 X M L P a r s e r T r a i l 5 4 1 0 S e c r e t P a s s a g eK a u a i , H a w a i i 9 9 2 9 3 P l a n o , T X 7 5 2 9 9

P . O . D A T E R E Q U I S I T I O N E R S H I P V I A F . O . B . P O I N T T E R M S

N o v e m b e r 9 , 1 9 9 9 H e i d i H a p p y U S P S N / A N / A

aQ T Y U N I T D E S C R I P T I O N U N I T P R I C E T O T A L

5 1 2 E a c h 1 0 1 0 1 0 0 - R e g u l a r S t r e n g t h A s p i r i n 1 . 0 0 $ 5 1 2 . 0 0

4 5 C a s e 1 0 1 0 1 1 0 – E x t r a S t r e n g t h A s p i r i n 5 0 . 0 0 $ 2 , 2 5 0 . 0 0

S U B T O T A L $ 2 , 7 6 2 . 0 0

S A L E S T A X 0 . 0 0

S H I P P I N G & H A N D L I N G $ 2 5 . 0 0

O T H E R

T O T A L $ 2 , 7 8 7 . 0 0

1 . P l e a s e s e n d t w o c o p i e s o f y o u r i n v o i c e .

2 . E n t e r t h i s o r d e r i n a c c o r d a n c e w i t h t h e p r i c e s , t e r m s , d e l i v e r y m e t h o d ,a n d s p e c i f i c a t i o n s l i s t e d a b o v e .

3 . P l e a s e n o t i f y u s i m m e d i a t e l y i f y o u a r e u n a b l e t o s h i p a s s p e c i f i e d .

4 . S e n d a l l c o r r e s p o n d e n c e t o :H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 - 5 5 5 - 5 5 5 5 ; F a x 5 5 5 - 5 5 5 - 5 5 5 6

H e i d i H a p p y N o v e m b e r 9 , 1 9 9 9A u t h o r i z e d b y D a t e

Page 11: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 11

XML Order

The DTD first cut

<!DOCTYPE purchase_order [

<!ELEMENT purchase_order (order_header, supplier_org, billing_info, shipping_info, item_info, order_summary)>

<!ELEMENT order_header (#PCDATA)>

<!ELEMENT supplier_org (#PCDATA)>

<!ELEMENT billing_info (#PCDATA)>

<!ELEMENT shipping_info (#PCDATA)>

<!ELEMENT item_info (#PCDATA)>

<!ELEMENT order_summary (#PCDATA)>

]>

Page 12: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 12

XML Order

The DTD and the XML together<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE purchase_order [

<!ELEMENT purchase_order (order_header, supplier_org, billing_info, shipping_info, item_info, order_summary)>

<!ELEMENT order_header (#PCDATA)>

<!ELEMENT supplier_org (#PCDATA)>

<!ELEMENT billing_info (#PCDATA)>

<!ELEMENT shipping_info (#PCDATA)>

<!ELEMENT item_info (#PCDATA)>

<!ELEMENT order_summary (#PCDATA)>

]>

<purchase_order>

<order_header>stuff</order_header>

<supplier_org>stuff</supplier_org>

<billing_info>stuff</billing_info>

<shipping_info>stuff</shipping_info>

<item_info>stuff</item_info>

<order_summary>stuff</order_summary>

</purchase_order>

Is it well-formed? Yes. Valid? Yes. Sensible? So far!

Page 13: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 13

XML Order

The Order Header

For the DTD:<!ELEMENT order_header (order_number, order_date_time)>

<!ELEMENT order_number (#PCDATA)>

<!ELEMENT order_date_time (#PCDATA)>

For the XML example:<order_header>

<order_number>34561</order_number>

<order_date_time>110919991035</order_date_time>

</order_header>

Note: the PO number was submitted, and the date, but the time stamp was generated. This is a back end requirement (I am asserting this for this example).

Page 14: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 14

XML Order

H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 . 5 5 5 . 5 5 5 5 F a x 5 5 5 . 5 5 5 . 5 5 5 6

T h e f o l l o w i n g n u m b e r m u s t a p p e a r o n a l l r e l a t e dc o r r e s p o n d e n c e , s h i p p i n g p a p e r s , a n d i n v o i c e s :P . O . N U M B E R : 3 4 5 6 1

T o : S h i p T o :A l f r e d A b e l P e t e P a i n f r e eA c m e A s p i r i n C o m p a n y H & P W a r e h o u s e1 0 1 X M L P a r s e r T r a i l 5 4 1 0 S e c r e t P a s s a g eK a u a i , H a w a i i 9 9 2 9 3 P l a n o , T X 7 5 2 9 9

P . O . D A T E R E Q U I S I T I O N E R S H I P V I A F . O . B . P O I N T T E R M S

N o v e m b e r 9 , 1 9 9 9 H e i d i H a p p y U S P S N / A N / A

aQ T Y U N I T D E S C R I P T I O N U N I T P R I C E T O T A L

5 1 2 E a c h 1 0 1 0 1 0 0 - R e g u l a r S t r e n g t h A s p i r i n 1 . 0 0 $ 5 1 2 . 0 0

4 5 C a s e 1 0 1 0 1 1 0 – E x t r a S t r e n g t h A s p i r i n 5 0 . 0 0 $ 2 , 2 5 0 . 0 0

S U B T O T A L $ 2 , 7 6 2 . 0 0

S A L E S T A X 0 . 0 0

S H I P P I N G & H A N D L I N G $ 2 5 . 0 0

O T H E R

T O T A L $ 2 , 7 8 7 . 0 0

1 . P l e a s e s e n d t w o c o p i e s o f y o u r i n v o i c e .

2 . E n t e r t h i s o r d e r i n a c c o r d a n c e w i t h t h e p r i c e s , t e r m s , d e l i v e r y m e t h o d ,a n d s p e c i f i c a t i o n s l i s t e d a b o v e .

3 . P l e a s e n o t i f y u s i m m e d i a t e l y i f y o u a r e u n a b l e t o s h i p a s s p e c i f i e d .

4 . S e n d a l l c o r r e s p o n d e n c e t o :H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 - 5 5 5 - 5 5 5 5 ; F a x 5 5 5 - 5 5 5 - 5 5 5 6

H e i d i H a p p y N o v e m b e r 9 , 1 9 9 9A u t h o r i z e d b y D a t e

Page 15: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 15

XML Order

Supplier Organization information

For the DTD:<!ELEMENT supplier_org (so_name, so_addr1, so_addr2,

so_city, so_state_or_province, so_country, so_postcode, so_contact)>

<!ELEMENT so_name (#PCDATA)>

<!ELEMENT so_addr1 (#PCDATA)>

<!ELEMENT so_addr2 (#PCDATA)>

<!ELEMENT so_city (#PCDATA)>

<!ELEMENT so_state_or_province (#PCDATA)>

<!ELEMENT so_country (#PCDATA)>

<!ELEMENT so_postcode (#PCDATA)>

<!ELEMENT so_contact (#PCDATA)>

Page 16: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 16

XML Order

Supplier Organization information

For the XML:<supplier_org>

<so_name>Acme Aspirin Company</so_name>

<so_addr1>101 XML Parser Trail</so_addr1>

<so_addr2/>

<so_city>Kauai</so_city>

<so_state_or_province>HW</so_state_or_province>

<so_country>USA</so_country>

<so_postcode>99293</so_postcode>

<so_contact>Alfred Abel</so_contact>

</supplier_org>

For this organization, the 2nd address field is empty. Note this is expressed as: <po_addr2/>. This is an empty element tag.

Page 17: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 17

XML Order

H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 . 5 5 5 . 5 5 5 5 F a x 5 5 5 . 5 5 5 . 5 5 5 6

T h e f o l l o w i n g n u m b e r m u s t a p p e a r o n a l l r e l a t e dc o r r e s p o n d e n c e , s h i p p i n g p a p e r s , a n d i n v o i c e s :P . O . N U M B E R : 3 4 5 6 1

T o : S h i p T o :A l f r e d A b e l P e t e P a i n f r e eA c m e A s p i r i n C o m p a n y H & P W a r e h o u s e1 0 1 X M L P a r s e r T r a i l 5 4 1 0 S e c r e t P a s s a g eK a u a i , H a w a i i 9 9 2 9 3 P l a n o , T X 7 5 2 9 9

P . O . D A T E R E Q U I S I T I O N E R S H I P V I A F . O . B . P O I N T T E R M S

N o v e m b e r 9 , 1 9 9 9 H e i d i H a p p y U S P S N / A N / A

aQ T Y U N I T D E S C R I P T I O N U N I T P R I C E T O T A L

5 1 2 E a c h 1 0 1 0 1 0 0 - R e g u l a r S t r e n g t h A s p i r i n 1 . 0 0 $ 5 1 2 . 0 0

4 5 C a s e 1 0 1 0 1 1 0 – E x t r a S t r e n g t h A s p i r i n 5 0 . 0 0 $ 2 , 2 5 0 . 0 0

S U B T O T A L $ 2 , 7 6 2 . 0 0

S A L E S T A X 0 . 0 0

S H I P P I N G & H A N D L I N G $ 2 5 . 0 0

O T H E R

T O T A L $ 2 , 7 8 7 . 0 0

1 . P l e a s e s e n d t w o c o p i e s o f y o u r i n v o i c e .

2 . E n t e r t h i s o r d e r i n a c c o r d a n c e w i t h t h e p r i c e s , t e r m s , d e l i v e r y m e t h o d ,a n d s p e c i f i c a t i o n s l i s t e d a b o v e .

3 . P l e a s e n o t i f y u s i m m e d i a t e l y i f y o u a r e u n a b l e t o s h i p a s s p e c i f i e d .

4 . S e n d a l l c o r r e s p o n d e n c e t o :H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 - 5 5 5 - 5 5 5 5 ; F a x 5 5 5 - 5 5 5 - 5 5 5 6

H e i d i H a p p y N o v e m b e r 9 , 1 9 9 9A u t h o r i z e d b y D a t e

Page 18: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 18

XML Order

Billing information

For the DTD:<!ELEMENT billing_info (bt_name, bt_addr1, bt_addr2, bt_city,

bt_state_or_province, bt_country, bt_postcode, bt_phone)>

<!ELEMENT bt_name (#PCDATA)>

<!ELEMENT bt_addr1 (#PCDATA)>

<!ELEMENT bt_addr2 (#PCDATA)>

<!ELEMENT bt_city (#PCDATA)>

<!ELEMENT bt_state_or_province (#PCDATA)>

<!ELEMENT bt_country (#PCDATA)>

<!ELEMENT bt_postcode (#PCDATA)>

<!ELEMENT bt_phone (#PCDATA)>

Page 19: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 19

XML Order

Billing information

For the XML:<billing_info>

<bt_name>Heidi Happy</bt_name>

<bt_addr1>H &amp; P Emporium</bt_addr1>

<bt_addr2>2000 Translator Drive</bt_addr2>

<bt_city>Dallas</bt_city>

<bt_state_or_province>TX</bt_state_or_province>

<bt_country>USA</bt_country>

<bt_postcode>75201</bt_postcode>

<bt_phone>555-555-5555</bt_phone>

</billing_info>

For the billing address, both address fields are used.

Note in the above, the ‘&’ for H&P must be expressed as &amp;

Page 20: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 20

XML Order

H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 . 5 5 5 . 5 5 5 5 F a x 5 5 5 . 5 5 5 . 5 5 5 6

T h e f o l l o w i n g n u m b e r m u s t a p p e a r o n a l l r e l a t e dc o r r e s p o n d e n c e , s h i p p i n g p a p e r s , a n d i n v o i c e s :P . O . N U M B E R : 3 4 5 6 1

T o : S h i p T o :A l f r e d A b e l P e t e P a i n f r e eA c m e A s p i r i n C o m p a n y H & P W a r e h o u s e1 0 1 X M L P a r s e r T r a i l 5 4 1 0 S e c r e t P a s s a g eK a u a i , H a w a i i 9 9 2 9 3 P l a n o , T X 7 5 2 9 9

P . O . D A T E R E Q U I S I T I O N E R S H I P V I A F . O . B . P O I N T T E R M S

N o v e m b e r 9 , 1 9 9 9 H e i d i H a p p y U S P S N / A N / A

aQ T Y U N I T D E S C R I P T I O N U N I T P R I C E T O T A L

5 1 2 E a c h 1 0 1 0 1 0 0 - R e g u l a r S t r e n g t h A s p i r i n 1 . 0 0 $ 5 1 2 . 0 0

4 5 C a s e 1 0 1 0 1 1 0 – E x t r a S t r e n g t h A s p i r i n 5 0 . 0 0 $ 2 , 2 5 0 . 0 0

S U B T O T A L $ 2 , 7 6 2 . 0 0

S A L E S T A X 0 . 0 0

S H I P P I N G & H A N D L I N G $ 2 5 . 0 0

O T H E R

T O T A L $ 2 , 7 8 7 . 0 0

1 . P l e a s e s e n d t w o c o p i e s o f y o u r i n v o i c e .

2 . E n t e r t h i s o r d e r i n a c c o r d a n c e w i t h t h e p r i c e s , t e r m s , d e l i v e r y m e t h o d ,a n d s p e c i f i c a t i o n s l i s t e d a b o v e .

3 . P l e a s e n o t i f y u s i m m e d i a t e l y i f y o u a r e u n a b l e t o s h i p a s s p e c i f i e d .

4 . S e n d a l l c o r r e s p o n d e n c e t o :H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 - 5 5 5 - 5 5 5 5 ; F a x 5 5 5 - 5 5 5 - 5 5 5 6

H e i d i H a p p y N o v e m b e r 9 , 1 9 9 9A u t h o r i z e d b y D a t e

Page 21: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 21

XML Order

Shipping information

For the DTD:<!ELEMENT shipping_info (st_name, st_addr1, st_addr2, st_city,

st_state_or_province, st_country, st_postcode)>

<!ELEMENT st_name (#PCDATA)>

<!ELEMENT st_addr1 (#PCDATA)>

<!ELEMENT st_addr2 (#PCDATA)>

<!ELEMENT st_city (#PCDATA)>

<!ELEMENT st_state_or_province (#PCDATA)>

<!ELEMENT st_country (#PCDATA)>

<!ELEMENT st_postcode (#PCDATA)>

Page 22: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 22

XML Order

Shipping information

For the XML:<shipping_info>

<st_name>Pete Painfree</st_name>

<st_addr1>H &amp; P Warehouse</st_addr1>

<st_addr2>5410 Secret Passage</st_addr2>

<st_city>Plano</st_city>

<st_state_or_province>TX</st_state_or_province>

<st_country>USA</st_country>

<st_postcode>75299</st_postcode>

</shipping_info>

For the shipping address, both address fields are used.

Again, note we have to escape the ‘&’ character.

Page 23: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 23

XML Order

H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 . 5 5 5 . 5 5 5 5 F a x 5 5 5 . 5 5 5 . 5 5 5 6

T h e f o l l o w i n g n u m b e r m u s t a p p e a r o n a l l r e l a t e dc o r r e s p o n d e n c e , s h i p p i n g p a p e r s , a n d i n v o i c e s :P . O . N U M B E R : 3 4 5 6 1

T o : S h i p T o :A l f r e d A b e l P e t e P a i n f r e eA c m e A s p i r i n C o m p a n y H & P W a r e h o u s e1 0 1 X M L P a r s e r T r a i l 5 4 1 0 S e c r e t P a s s a g eK a u a i , H a w a i i 9 9 2 9 3 P l a n o , T X 7 5 2 9 9

P . O . D A T E R E Q U I S I T I O N E R S H I P V I A F . O . B . P O I N T T E R M S

N o v e m b e r 9 , 1 9 9 9 H e i d i H a p p y U S P S N / A N / A

aQ T Y U N I T D E S C R I P T I O N U N I T P R I C E T O T A L

5 1 2 E a c h 1 0 1 0 1 0 0 - R e g u l a r S t r e n g t h A s p i r i n 1 . 0 0 $ 5 1 2 . 0 0

4 5 C a s e 1 0 1 0 1 1 0 – E x t r a S t r e n g t h A s p i r i n 5 0 . 0 0 $ 2 , 2 5 0 . 0 0

S U B T O T A L $ 2 , 7 6 2 . 0 0

S A L E S T A X 0 . 0 0

S H I P P I N G & H A N D L I N G $ 2 5 . 0 0

O T H E R

T O T A L $ 2 , 7 8 7 . 0 0

1 . P l e a s e s e n d t w o c o p i e s o f y o u r i n v o i c e .

2 . E n t e r t h i s o r d e r i n a c c o r d a n c e w i t h t h e p r i c e s , t e r m s , d e l i v e r y m e t h o d ,a n d s p e c i f i c a t i o n s l i s t e d a b o v e .

3 . P l e a s e n o t i f y u s i m m e d i a t e l y i f y o u a r e u n a b l e t o s h i p a s s p e c i f i e d .

4 . S e n d a l l c o r r e s p o n d e n c e t o :H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 - 5 5 5 - 5 5 5 5 ; F a x 5 5 5 - 5 5 5 - 5 5 5 6

H e i d i H a p p y N o v e m b e r 9 , 1 9 9 9A u t h o r i z e d b y D a t e

Page 24: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 24

XML Order

Item information

For the DTD:<!-- Note that items may be repeated -->

<!ELEMENT item_info (item_code, item_name, item_qty, item_units, item_price, item_discount, item_subtotal)+>

<!ELEMENT item_code (#PCDATA)>

<!ELEMENT item_name (#PCDATA)>

<!ELEMENT item_qty (#PCDATA)>

<!ELEMENT item_units (#PCDATA)>

<!ELEMENT item_price (#PCDATA)>

<!ELEMENT item_discount (#PCDATA)>

<!ELEMENT item_subtotal (#PCDATA)>

Note the ‘+’ at the end of the items declaration. This means there may be one or more items in the XML.

Page 25: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 25

XML Order

Items purchased information

For the XML:<item_info>

<item_code>1010100</item_code>

<item_name>Regular Strength Aspirin</item_name>

<item_qty>512</item_qty>

<item_units>Each</item_units>

<item_price>$1.00</item_price>

<item_discount>0</item_discount>

<item_subtotal>$512.00</item_subtotal>

<item_code>1010110</item_code>

<item_name>Extra Strength Aspirin</item_name>

<item_qty>45</item_qty>

<item_units>Case</item_units>

<item_price>$50.00</item_price>

<item_discount>0</item_discount>

<item_subtotal>$2250.00</item_subtotal>

</item_info>

Page 26: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 26

XML Order

H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 . 5 5 5 . 5 5 5 5 F a x 5 5 5 . 5 5 5 . 5 5 5 6

T h e f o l l o w i n g n u m b e r m u s t a p p e a r o n a l l r e l a t e dc o r r e s p o n d e n c e , s h i p p i n g p a p e r s , a n d i n v o i c e s :P . O . N U M B E R : 3 4 5 6 1

T o : S h i p T o :A l f r e d A b e l P e t e P a i n f r e eA c m e A s p i r i n C o m p a n y H & P W a r e h o u s e1 0 1 X M L P a r s e r T r a i l 5 4 1 0 S e c r e t P a s s a g eK a u a i , H a w a i i 9 9 2 9 3 P l a n o , T X 7 5 2 9 9

P . O . D A T E R E Q U I S I T I O N E R S H I P V I A F . O . B . P O I N T T E R M S

N o v e m b e r 9 , 1 9 9 9 H e i d i H a p p y U S P S N / A N / A

aQ T Y U N I T D E S C R I P T I O N U N I T P R I C E T O T A L

5 1 2 E a c h 1 0 1 0 1 0 0 - R e g u l a r S t r e n g t h A s p i r i n 1 . 0 0 $ 5 1 2 . 0 0

4 5 C a s e 1 0 1 0 1 1 0 – E x t r a S t r e n g t h A s p i r i n 5 0 . 0 0 $ 2 , 2 5 0 . 0 0

S U B T O T A L $ 2 , 7 6 2 . 0 0

S A L E S T A X 0 . 0 0

S H I P P I N G & H A N D L I N G $ 2 5 . 0 0

O T H E R

T O T A L $ 2 , 7 8 7 . 0 0

1 . P l e a s e s e n d t w o c o p i e s o f y o u r i n v o i c e .

2 . E n t e r t h i s o r d e r i n a c c o r d a n c e w i t h t h e p r i c e s , t e r m s , d e l i v e r y m e t h o d ,a n d s p e c i f i c a t i o n s l i s t e d a b o v e .

3 . P l e a s e n o t i f y u s i m m e d i a t e l y i f y o u a r e u n a b l e t o s h i p a s s p e c i f i e d .

4 . S e n d a l l c o r r e s p o n d e n c e t o :H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 - 5 5 5 - 5 5 5 5 ; F a x 5 5 5 - 5 5 5 - 5 5 5 6

H e i d i H a p p y N o v e m b e r 9 , 1 9 9 9A u t h o r i z e d b y D a t e

Page 27: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 27

XML Order

Order Summary information

For the DTD:<!ELEMENT order_summary (order_subtotal, order_discount,

order_tax, order_shipping_cost, order_tax_on_shipping, order_total)>

<!ELEMENT order_subtotal (#PCDATA)>

<!ELEMENT order_discount (#PCDATA)>

<!ELEMENT order_tax (#PCDATA)>

<!ELEMENT order_shipping_cost (#PCDATA)>

<!ELEMENT order_tax_on_shipping (#PCDATA)>

<!ELEMENT order_total (#PCDATA)>

Here’s the last of it!

Page 28: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 28

XML Order

Order Summary information

For the XML:<order_summary>

<order_subtotal>2762.00</order_subtotal>

<order_discount>0%</order_discount>

<order_tax>0.00</order_tax>

<order_shipping_cost>25.00</order_shipping_cost>

<order_tax_on_shipping>0.00</order_tax_on_shipping>

<order_total>2787.00</order_total>

</order_summary>

Note that for this order there is no tax on the order or tax on the shipping costs of the order. No discount has been applied.

Page 29: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 29

XML Order

H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 . 5 5 5 . 5 5 5 5 F a x 5 5 5 . 5 5 5 . 5 5 5 6

T h e f o l l o w i n g n u m b e r m u s t a p p e a r o n a l l r e l a t e dc o r r e s p o n d e n c e , s h i p p i n g p a p e r s , a n d i n v o i c e s :P . O . N U M B E R : 3 4 5 6 1

T o : S h i p T o :A l f r e d A b e l P e t e P a i n f r e eA c m e A s p i r i n C o m p a n y H & P W a r e h o u s e1 0 1 X M L P a r s e r T r a i l 5 4 1 0 S e c r e t P a s s a g eK a u a i , H a w a i i 9 9 2 9 3 P l a n o , T X 7 5 2 9 9

P . O . D A T E R E Q U I S I T I O N E R S H I P V I A F . O . B . P O I N T T E R M S

N o v e m b e r 9 , 1 9 9 9 H e i d i H a p p y U S P S N / A N / A

aQ T Y U N I T D E S C R I P T I O N U N I T P R I C E T O T A L

5 1 2 E a c h 1 0 1 0 1 0 0 - R e g u l a r S t r e n g t h A s p i r i n 1 . 0 0 $ 5 1 2 . 0 0

4 5 C a s e 1 0 1 0 1 1 0 – E x t r a S t r e n g t h A s p i r i n 5 0 . 0 0 $ 2 , 2 5 0 . 0 0

S U B T O T A L $ 2 , 7 6 2 . 0 0

S A L E S T A X 0 . 0 0

S H I P P I N G & H A N D L I N G $ 2 5 . 0 0

O T H E R

T O T A L $ 2 , 7 8 7 . 0 0

1 . P l e a s e s e n d t w o c o p i e s o f y o u r i n v o i c e .

2 . E n t e r t h i s o r d e r i n a c c o r d a n c e w i t h t h e p r i c e s , t e r m s , d e l i v e r y m e t h o d ,a n d s p e c i f i c a t i o n s l i s t e d a b o v e .

3 . P l e a s e n o t i f y u s i m m e d i a t e l y i f y o u a r e u n a b l e t o s h i p a s s p e c i f i e d .

4 . S e n d a l l c o r r e s p o n d e n c e t o :H & P E m p o r i u m2 0 0 0 T r a n s l a t o r D r i v eD a l l a s , T X 7 5 2 0 15 5 5 - 5 5 5 - 5 5 5 5 ; F a x 5 5 5 - 5 5 5 - 5 5 5 6

H e i d i H a p p y N o v e m b e r 9 , 1 9 9 9A u t h o r i z e d b y D a t e

Page 30: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 30

XML Order

Is the XML PO acceptable?

Is it well-formed?

• Does it conform to the rules of XML grammer, including handling all special characters? Yes.

Is it valid?

• Is it well formed? Yes.

• Does it have a DTD? Yes.

• Does it comply with the rules specified in the DTD? Yes.

Does it make sense?

• Well, does it support the example PO? Yes. And that was the goal given in the assignment.

Page 31: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 31

XML Order

Complete DTD:<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE purchase_order [

<!ELEMENT purchase_order (order_header, supplier_org, billing_info, shipping_info, item_info, order_summary)>

<!ELEMENT order_header (order_number, order_date_time)>

<!ELEMENT order_number (#PCDATA)>

<!ELEMENT order_date_time (#PCDATA)>

<!ELEMENT supplier_org (so_name, so_addr1, so_addr2, so_city, so_state_or_province, so_country, so_postcode, so_contact)>

<!ELEMENT so_name (#PCDATA)>

<!ELEMENT so_addr1 (#PCDATA)>

<!ELEMENT so_addr2 (#PCDATA)>

<!ELEMENT so_city (#PCDATA)>

<!ELEMENT so_state_or_province (#PCDATA)>

<!ELEMENT so_country (#PCDATA)>

<!ELEMENT so_postcode (#PCDATA)>

<!ELEMENT so_contact (#PCDATA)>

<!ELEMENT billing_info (bt_name, bt_addr1, bt_addr2, bt_city, bt_state_or_province, bt_country, bt_postcode, bt_phone)>

<!ELEMENT bt_name (#PCDATA)>

<!ELEMENT bt_addr1 (#PCDATA)>

<!ELEMENT bt_addr2 (#PCDATA)>

<!ELEMENT bt_city (#PCDATA)>

<!ELEMENT bt_state_or_province (#PCDATA)>

<!ELEMENT bt_country (#PCDATA)>

<!ELEMENT bt_postcode (#PCDATA)>

<!ELEMENT bt_phone (#PCDATA)>

Note XML version info at top would be with the XML file if the DTD were in a separate document.

DTD continued:<!ELEMENT shipping_info (st_name, st_addr1, st_addr2,

st_city, st_state_or_province, st_country, st_postcode)>

<!ELEMENT st_name (#PCDATA)>

<!ELEMENT st_addr1 (#PCDATA)>

<!ELEMENT st_addr2 (#PCDATA)>

<!ELEMENT st_city (#PCDATA)>

<!ELEMENT st_state_or_province (#PCDATA)>

<!ELEMENT st_country (#PCDATA)>

<!ELEMENT st_postcode (#PCDATA)>

<!-- Note that items may be repeated -->

<!ELEMENT item_info (item_code, item_name, item_qty, item_units, item_price, item_discount, item_subtotal)+>

<!ELEMENT item_code (#PCDATA)>

<!ELEMENT item_name (#PCDATA)>

<!ELEMENT item_qty (#PCDATA)>

<!ELEMENT item_units (#PCDATA)>

<!ELEMENT item_price (#PCDATA)>

<!ELEMENT item_discount (#PCDATA)>

<!ELEMENT item_subtotal (#PCDATA)>

<!ELEMENT order_summary (order_subtotal, order_discount, order_tax, order_shipping_cost, order_tax_on_shipping, order_total)>

<!ELEMENT order_subtotal (#PCDATA)>

<!ELEMENT order_discount (#PCDATA)>

<!ELEMENT order_tax (#PCDATA)>

<!ELEMENT order_shipping_cost (#PCDATA)>

<!ELEMENT order_tax_on_shipping (#PCDATA)>

<!ELEMENT order_total (#PCDATA)>

]>

Page 32: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 32

XML Order

Complete XML:<purchase_order>

<order_header>

<order_number>12345</order_number>

<order_date_time>110919991035</order_date_time>

</order_header>

<supplier_org>

<so_name>Acme Aspirin Company</so_name>

<so_addr1>101 XML Parser Trail</so_addr1>

<so_addr2/>

<so_city>Kauai</so_city>

<so_state_or_province>HW</so_state_or_province>

<so_country>USA</so_country>

<so_postcode>99293</so_postcode>

<so_contact>Alfred Abel</so_contact>

</supplier_org>

<billing_info>

<bt_name>Heidi Happy</bt_name>

<bt_addr1>H &amp; P Emporium</bt_addr1>

<bt_addr2>2000 Translator Drive</bt_addr2>

<bt_city>Dallas</bt_city>

<bt_state_or_province>TX</bt_state_or_province>

<bt_country>USA</bt_country>

<bt_postcode>75201</bt_postcode>

<bt_phone>555-555-5555</bt_phone>

</billing_info>

<shipping_info>

<st_name>Pete Painfree</st_name>

<st_addr1>H &amp; P Warehouse</st_addr1>

<st_addr2>5410 Secret Passage</st_addr2>

XML continued:<st_city>Plano</st_city>

<st_state_or_province>TX</st_state_or_province>

<st_country>USA</st_country>

<st_postcode>75299</st_postcode>

</shipping_info>

<item_info>

<item_code>1010100</item_code>

<item_name>Regular Strength Aspirin</item_name>

<item_qty>512</item_qty>

<item_units>Each</item_units>

<item_price>$1.00</item_price>

<item_discount>0</item_discount>

<item_subtotal>$512.00</item_subtotal>

<item_code>1010110</item_code>

<item_name>Extra Strength Aspirin</item_name>

<item_qty>45</item_qty>

<item_units>Case</item_units>

<item_price>$50.00</item_price>

<item_discount>0</item_discount>

<item_subtotal>$2250.00</item_subtotal>

</item_info>

<order_summary>

<order_subtotal>2762.00</order_subtotal>

<order_discount>0%</order_discount>

<order_tax>0.00</order_tax>

<order_shipping_cost>25.00</order_shipping_cost><order_tax_on_shipping>0.00</order_tax_on_shipping>

<order_total>2787.00</order_total>

</order_summary>

</purchase_order>

Page 33: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 33

XML Order

XML Recommendations

• Keep it simple.

• If you don’t need to use attributes, don’t use them.

• The entity names should either correspond with database field names or should be clear to a human reader of the file.

• If the message size is not an issue, the sending program should include the DTD in the body of the message with the XML. This ensures both ends (sending/receiving) use the same DTD.• Use a validating XML parser to build and check your work. I used XMLSpy to build the example for this presentation and to check the assignments. It is located at: http://www.xmlspy.com/

Page 34: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 34

XML Invoice

XML Invoice

• The next slide shows the “paper” invoice example. I will show you my version of an invoice in XML using the XMLSpy tool.

• Differences between an order and an invoice:

• An invoice is from the supplier to the purchaser.

• There will normally be an invoice number, and invoice date, a shipment method, a shipper, and a ship date.

• There may be a payment terms specification such as “Net 30, Net 60, or Due Upon Receipt”.

• There may be some commentary indicating how the purchaser can get in touch with the supplier if they need to do so.

Page 35: Copyrighted material John Tullis 6/1/2014 page 1 An XML Purchase Order John Tullis DePaul Instructor john.d.tullis@us.arthurandersen.com

Copyrighted materialJohn Tullis

04/10/23page 35

Acme Aspirin Company1011 XML Parser TrailKauai, Hawaii, 10101444-444-4444 Fax 444-444-4445

INVOICE NO: 14367899DATE: November 15, 1999

To: Ship To:Heidi Happy Pete PainfreeH&P Emporium H&P Warehouse2000 Tr anslator Drive 5410 Secret PassageDallas, TX 75201 Plano, TX 75299

SALESPERSON P.O. NUMBER DATE SHIPPED SHIPPED VIA F.O.B. POINT TERMS

Alfred Abel 34561 Nov 10, 1999 USPS N/A N/A

QUANTITY DESCRIPTION UNIT PRICE AMOUNT

512 1010100 – Regular Strength Aspirin 1.00 $ 512.00

45 1010110 – Extra Strength Aspirin 50.00 $2,250.00

SUBTOTAL $2,762.00

SALES TAX 0.00

SHIPPING & HANDLING 25.00

TOTAL DUE $2,787.00

Make all checks payable to: Acme Aspirin CompanyIf you have any questions concerning this invoice, call: Alfred Abel @ 444-444-4444

THANK YOU FOR YOUR BUSINESS!

N1*SE*Acme Aspirin Company N/L

N3*101 XML Parser Trail N/L

N4*Kauai*HI*99293 N/L

BIG*19991115*14367899*19991109*34561 N/L

N1*ST*Pete Painfree N/L

N2*H&P Warehouse N/L

N3*5410 Secret Passage N/L

N4*Plano*TX*75299 N/L

IT1*2*45*CA*50.00**VP*1010110 N/L

PID*F****Extra Strength Aspirin N/L

IT1*1*512*EA*1.00**VP*1010100 N/L

PID*F****Regular Strength Aspirin N/L

TDS*2767.00 N/L

AMT*TZ*25.00 N/L

CTT*2 N/L