2013-03-11 79 views
1

我想写出下列数据的XML文件(表中表示):使用DTD和XML创建银行(DB)

Account table: 
account-number balance 
    100    1000 
    719    9000 
    715   -3000 
    600    100 


Costumers table: 
account-number  street city id 
    100    ...  ... ... 
    719    ...  ...  ... 
    715    ...  ...  ... 
    715    ...  ....  ... 
    600    ...  ...  ... 

因为这是我第一次在XML写作,即时通讯升技困惑DTD文件。 这是我写的:

<!ELEMENT bank (costumer)*> 
<!ELEMENT costumer (account, street, city, id)> 
<!ELEMENT account (account-number, balance)> 
<!ELEMENT account-number (#PCDATA)> 
<!ELEMENT balance (#PCDATA)> 
<!ATTLIST balance currency CDATA #FIXED "usd"> 
<!ELEMENT street (#PCDATA)> 
<!ELEMENT city (#PCDATA)> 
<!ELEMENT id (#PCDATA)> 

请问这种形式真正成为我的意图,或者我做我有什么错误? 你有什么要添加/更改我的代码,所以它最适合描述这些表?

回答

2

看起来你已经覆盖了一切,但只有你可以确定它是否适合你的需求。

只是一些小的建议。

  • 使用属性id而不是元素。这样您就可以确定它是独一无二的,如果您需要:<!ATTLIST costumer id ID #REQUIRED>。您也可以对帐号进行同样的操作。

  • address元件中包裹streetcity。这将使未来扩展更容易,而不会混淆costumer的模型。

+0

但我的身份证应该以字母开头,不是?和ID只是数字... – Jjang 2013-03-12 16:46:14

+1

@Jjang - 这是非常真实的。 ID不能以数字开头,所以你必须为你的ID添加一个前缀或者使用CDATA(或者让它保留一个你喜欢的元素)。 – 2013-03-12 16:54:50

+0

嗯,但在costumers表中,我可以有两个具有相同ID的条目(costumers),而在帐户表中,我不能。 (所以应该是一个ID或不)?? p.s我决定添加一个字母到ID的开始:D – Jjang 2013-03-12 16:59:33