主要棒球联赛分成两个联赛:American League和National League。每个联赛都有名称。两个名称可如下编码:<?xml version="1.0"?><SEASON><YEAR>1998</YEAR><LEAGUE><LEAGUE_NAME>National League</LEAGUE_NAME></LEAGUE><LEAGUE><LEAGUE_NAME>American League</LEAGUE_NAME></LEAGUE></SEASON>我在这里将联赛的名称定义为元素LEAGUE_NAME,而不是简单的NAME元素。因为NAME太普遍了,而且还打算将其用在其他场合。例如,分部、球队和球员都有名称。带有相同的名称的不同领域的元素可以利用命名域(namespaces)结合在一起。命名域的问题将在第18章中加以讨论。但是,即使使用命名域,也不要将同一领域(如本例中的TEAM和LEAGUE)的多个术语给予同样的名称。每个联赛可分为东部(east)、西部(west)和中部(central)分部,可编码如下:<LEAGUE><LEAGUE_NAME>National League</LEAGUE_NAME><DIVISION><DIVISION_NAME>East</DIVISION_NAME></DIVISION><DIVISION><DIVISION_NAME>Central</DIVISION_NAME></DIVISION><DIVISION><DIVISION_NAME>West</DIVISION_NAME></DIVISION></LEAGUE><LEAGUE><LEAGUE_NAME>American League</LEAGUE_NAME><DIVISION><DIVISION_NAME>East</DIVISION_NAME></DIVISION><DIVISION><DIVISION_NAME>Central</DIVISION_NAME></DIVISION><DIVISION><DIVISION_NAME>West</DIVISION_NAME></DIVISION></LEAGUE>元素的实际值依赖于包括该元素的父元素。American League和National League都有East分部,但是这不是一回事。每个分部又分为多个球队。每个球队都有一个队名和城市名。例如,与American League联赛East分部有关的名称可编码如下:<DIVISION><DIVISION_NAME>East</DIVISION_NAME><TEAM><TEAM_CITY>Baltimore</TEAM_CITY><TEAM_NAME>Orioles</TEAM_NAME></TEAM><TEAM><TEAM_CITY>Boston</TEAM_CITY><TEAM_NAME>Red Sox</TEAM_NAME></TEAM><TEAM><TEAM_CITY>New York</TEAM_CITY><TEAM_NAME>Yankees</TEAM_NAME></TEAM><TEAM><TEAM_CITY>Tampa Bay</TEAM_CITY><TEAM_NAME>Devil Rays</TEAM_NAME></TEAM><TEAM><TEAM_CITY>Toronto</TEAM_CITY><TEAM_NAME>Blue Jays</TEAM_NAME></TEAM></DIVISION>
第4章 数据的结构化 4.2 数据的XML化 4.2.2 联赛(League)、(分部)Division和(球队)Team数据的XML化 |