Difference between 2 DTD tag

102 views Asked by At

I want to know what is difference between this 2 ELEMENT tag :

<!ELEMENT bank (account*, customer*, depositor*)>

and

<!ELEMENT bank (account | customer | depositor )*>

thanks.

2

There are 2 answers

0
Daniel Haley On BEST ANSWER

In a nutshell, the first ELEMENT declaration is saying the child elements have to be in a specific order. The second ELEMENT declaration is saying the child elements can be in any order.

The following means: a bank element containing zero or more account elements, followed by zero or more customer elements, followed by zero or more depositor elements. (In that specific order.)

<!ELEMENT bank (account*, customer*, depositor*)>

The following means: a bank element containing zero or more account or customer or depositor elements (in any order).

<!ELEMENT bank (account | customer | depositor )*>

The ',' means "followed by" and the '|' means "or". The '*' means zero or more. Also, a '+' means one or more (at least one).

1
Niranjan On

It denotes a regular expression. Though I'm not very good at that, I think the second tag accepts sub-element of either account or customer or depositor.