Приступим к рассмотрению связей между элементами и документами, которые могут хранить XSD-схемы. Самое сложное в создании связей - определение логической структуры документа или группы документов, впрочем, мы уже сталкивались с этим при проектировании базы данных. В этой лекции при создании документа XMLTour.xml мы использовали содержимое таблицы "Туры" базы данных BDTur_firm.mdb. В первой лекции мы определяли связи между таблицами этой базы данных, так, одна ветвь имела следующий вид:
"Туры" 1 -



Восстановим это же отношение в XML-документах. Первое, с чего мы начнем, - это создание отдельных документов (таблица 11.5).
|
<?xml version="1.0" encoding="utf-8" ?> <!-- Название файла XMLSeason.xml --> <TABLE> <SEASON> <IDSEASON>1</IDSEASON> <IDTOUR>1</IDTOUR> <DATE_OF_COMMENCEMENT>01.05.2007</DATE_OF_COMMENCEMENT> <DATA_OF_TERMINATION>01.10.2007</DATA_OF_TERMINATION> <SEASON_OFF>0</SEASON_OFF> <PLACE>25</PLACE> </SEASON> <SEASON> <IDSEASON>2</IDSEASON> <IDTOUR>2</IDTOUR> <DATE_OF_COMMENCEMENT>01.06.2007</DATE_OF_COMMENCEMENT> <DATA_OF_TERMINATION>31.08.2007</DATA_OF_TERMINATION> <SEASON_OFF>1</SEASON_OFF> <PLACE>30</PLACE> </SEASON> <SEASON> <IDSEASON>3</IDSEASON> <IDTOUR>3</IDTOUR> <DATE_OF_COMMENCEMENT>01.04.2007</DATE_OF_COMMENCEMENT> <DATA_OF_TERMINATION>01.10.2007</DATA_OF_TERMINATION> <SEASON_OFF>0</SEASON_OFF> <PLACE>15</PLACE> </SEASON> <SEASON> <IDSEASON>4</IDSEASON> <IDTOUR>4</IDTOUR> <DATE_OF_COMMENCEMENT>01.03.2007</DATE_OF_COMMENCEMENT> <DATA_OF_TERMINATION>01.09.2007</DATA_OF_TERMINATION> <SEASON_OFF>0</SEASON_OFF> <PLACE>12</PLACE> </SEASON> <SEASON> <IDSEASON>5</IDSEASON> <IDTOUR>5</IDTOUR> <DATE_OF_COMMENCEMENT>01.03.2007</DATE_OF_COMMENCEMENT> <DATA_OF_TERMINATION>01.10.2007</DATA_OF_TERMINATION> <SEASON_OFF>0</SEASON_OFF> <PLACE>12</PLACE> </SEASON> </TABLE> | |
|
<?xml version="1.0" encoding="utf-8" ?> <!-- Название файла XMLPass.xml --> <TABLE> <PASS> <IDPASS>1</IDPASS> <IDTOURIST>1</IDTOURIST> <IDSEASON>1</IDSEASON> </PASS> <PASS> <IDPASS>2</IDPASS> <IDTOURIST>2</IDTOURIST> <IDSEASON>2</IDSEASON> </PASS> <PASS> <IDPASS>3</IDPASS> <IDTOURIST>3</IDTOURIST> <IDSEASON>3</IDSEASON> </PASS> <PASS> <IDPASS>4</IDPASS> <IDTOURIST>4</IDTOURIST> <IDSEASON>4</IDSEASON> </PASS> <PASS> <IDPASS>5</IDPASS> <IDTOURIST>5</IDTOURIST> <IDSEASON>5</IDSEASON> </PASS> </TABLE> | |
|
<?xml version="1.0" encoding="utf-8" ?> <!-- Название файла XMLPayment.xml --> <TABLE> <PAYMENT> <IDPAYMENT>1</IDPAYMENT> <IDPASS>1</IDPASS> <DATE_OF_PAYMENT>13.04.2007</DATE_OF_PAYMENT> <AMOUNT>25 000,00р.</AMOUNT> </PAYMENT> <PAYMENT> <IDPAYMENT>2</IDPAYMENT> <IDPASS>2</IDPASS> <DATE_OF_PAYMENT>15.05.2006</DATE_OF_PAYMENT> <AMOUNT>32 000,00р.</AMOUNT> </PAYMENT> <PAYMENT> <IDPAYMENT>3</IDPAYMENT> <IDPASS>3</IDPASS> <DATE_OF_PAYMENT>05.03.2007</DATE_OF_PAYMENT> <AMOUNT>30 000,00р.</AMOUNT> </PAYMENT> <PAYMENT> <IDPAYMENT>4</IDPAYMENT> <IDPASS>4</IDPASS> <DATE_OF_PAYMENT>02.02.2007</DATE_OF_PAYMENT> <AMOUNT>26 000,00р.</AMOUNT> </PAYMENT> <PAYMENT> <IDPAYMENT>5</IDPAYMENT> <IDPASS>5</IDPASS> <DATE_OF_PAYMENT>25.02.2007</DATE_OF_PAYMENT> <AMOUNT>27 000,00р.</AMOUNT> </PAYMENT> </TABLE> |


![]() |
<?xml version="1.0" ?> <xs:schema id="TABLE" targetNamespace="http://tempuri.org/XMLTourFull.xsd" xmlns:mstns="http://tempuri.org/XMLTourFull.xsd" xmlns="http://tempuri.org/XMLTourFull.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified"> <xs:element name="TABLE" msdata:IsDataSet="true" msdata:Locale="ru-RU" msdata:EnforceConstraints="False"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="TOUR"> <xs:complexType> <xs:sequence> <xs:element name="IDTOUR" type="xs:string" minOccurs="0" /> <xs:element name="NAME" type="xs:string" minOccurs="0" /> <xs:element name="PRICE" type="xs:string" minOccurs="0" /> <xs:element name="INFORMATION" type="xs:string" minOccurs="0" /> <xs:element name="SEASON" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="IDSEASON" type="xs:string" minOccurs="0" /> <xs:element name="IDTOUR" type="xs:string" minOccurs="0" /> <xs:element name="DATE_OF_COMMENCEMENT" type="xs:string" minOccurs="0" /> <xs:element name="DATA_OF_TERMINATION" type="xs:string" minOccurs="0" /> <xs:element name="SEASON_OFF" type="xs:string" minOccurs="0" /> <xs:element name="PLACE" type="xs:string" minOccurs="0" /> <xs:element name="PASS" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="IDPASS" type="xs:string" minOccurs="0" /> <xs:element name="IDTOURIST" type="xs:string" minOccurs="0" /> <xs:element name="IDSEASON" type="xs:string" minOccurs="0" /> <xs:element name="PAYMENT" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="IDPAYMENT" type="xs:string" minOccurs="0" /> <xs:element name="IDPASS" type="xs:string" minOccurs="0" /> <xs:element name="DATE_OF_PAYMENT" type="xs:string" minOccurs="0" /> <xs:element name="AMOUNT" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> |