/tasks/laSistEvents.xsd

https://bitbucket.org/teraxas/vu-mif-ps-it-2013 · XML Schema · 138 lines · 118 code · 20 blank · 0 comment · 0 complexity · 873108eef4f476477544a6ae2ef1bd8e MD5 · raw file

  1. <?xml version="1.0"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  3. xmlns:bb="https://bitbucket.org/teraxas/vu-mif-ps-oop2-2012-lazsist"
  4. targetNamespace="https://bitbucket.org/teraxas/vu-mif-ps-oop2-2012-lazsist"
  5. elementFormDefault="qualified">
  6. <xs:element name = "eventsList" type = "bb:eventslist"/>
  7. <xs:complexType name = "eventslist">
  8. <xs:sequence minOccurs="0" maxOccurs="unbounded">
  9. <xs:element name = "LsEvent" type = "bb:LsEventExt"/>
  10. </xs:sequence>
  11. </xs:complexType>
  12. <!-- 6. Complex type MIXED content -->
  13. <xs:complexType name = "LsEventType" mixed = "true">
  14. <xs:sequence>
  15. <xs:element name = "eventDate" type = "xs:dateTime" />
  16. <xs:element name = "eventName" type = "bb:EventNameType"/>
  17. <xs:element name = "eventLocation" type = "xs:string"/>
  18. <xs:element name = "eventType" type = "xs:string"/>
  19. <xs:element name = "eventPhone" type = "bb:TelefonoListTipas"/>
  20. <xs:element name = "teamsLs" type = "bb:teamsListType"/>
  21. </xs:sequence>
  22. </xs:complexType>
  23. <!-- 4.2. complex type, complex content - EXTENSION -->
  24. <xs:complexType name="LsEventExt">
  25. <xs:complexContent>
  26. <xs:extension base = "bb:LsEventType">
  27. <xs:attribute name = "eventCountry" type = "xs:string"/>
  28. <xs:attribute name = "eventCycle">
  29. <xs:simpleType>
  30. <xs:restriction base = "xs:string">
  31. <xs:pattern value="yearly|monthly|daily|weekly"/>
  32. </xs:restriction>
  33. </xs:simpleType>
  34. </xs:attribute>
  35. <xs:attribute name = "ticketPrice" type = "xs:decimal"
  36. use = "required"/>
  37. </xs:extension>
  38. </xs:complexContent>
  39. </xs:complexType>
  40. <!--
  41. 4.1. complex type, complex content - RESTRICTION
  42. <xs:complexType name="LsEventRestr" mixed = "true">
  43. <xs:complexContent>
  44. <xs:restriction base = "bb:LsEventExt">
  45. <xs:sequence>
  46. <xs:element name = "eventDate" type = "xs:dateTime" />
  47. <xs:element name = "eventName" type = "bb:EventNameType"/>
  48. <xs:element name = "eventLocation" type = "xs:string"/>
  49. <xs:element name = "eventType" type = "xs:string"/>
  50. <xs:element name = "eventPhone" type = "bb:TelefonoListTipas"/>
  51. <xs:element name = "teamsLs" type = "bb:teamsListType"/>
  52. </xs:sequence>
  53. </xs:restriction>
  54. </xs:complexContent>
  55. </xs:complexType>
  56. -->
  57. <!-- 3. complexType, simple content -->
  58. <xs:complexType name="EventNameTypeExt">
  59. <xs:simpleContent>
  60. <xs:extension base = "bb:NameType">
  61. <xs:attribute name="abbreviation" type="xs:string"/>
  62. </xs:extension>
  63. </xs:simpleContent>
  64. </xs:complexType>
  65. <xs:complexType name="EventNameType">
  66. <xs:simpleContent>
  67. <xs:restriction base = "bb:EventNameTypeExt">
  68. <xs:maxLength value = "50"/>
  69. <xs:minLength value = "5"/>
  70. </xs:restriction>
  71. </xs:simpleContent>
  72. </xs:complexType>
  73. <xs:simpleType name="NameType">
  74. <xs:restriction base = "xs:string"/>
  75. </xs:simpleType>
  76. <!-- 7. Choice valdymo str. -->
  77. <xs:complexType name="teamsListType">
  78. <xs:choice>
  79. <xs:element name = "team" type = "bb:teamType" minOccurs = "2" maxOccurs = "unbounded">
  80. <!-- KEY, KEYREF -->
  81. <xs:key name="TeamsKey">
  82. <xs:selector xpath="eventsList/LsEvent/teamsLs/team"/>
  83. <xs:field xpath="name"/>
  84. </xs:key>
  85. <xs:keyref name="TeamKeyRef" refer="bb:TeamsKey">
  86. <xs:selector xpath="eventsList/LsEvent/teamsLs"/>
  87. <xs:field xpath="@favorite"/>
  88. </xs:keyref>
  89. </xs:element>
  90. <xs:element name = "player" type = "bb:teamType" minOccurs = "2" maxOccurs = "unbounded"/>
  91. </xs:choice>
  92. <xs:attribute name = "favorite" type = "xs:string"/>
  93. </xs:complexType>
  94. <xs:complexType name="teamType">
  95. <xs:sequence>
  96. <xs:element name = "name" type = "xs:string"/>
  97. <xs:element name = "rate" type = "xs:decimal"/>
  98. </xs:sequence>
  99. </xs:complexType>
  100. <!-- 2. saraso tipas -->
  101. <xs:simpleType name="TelefonoListTipas">
  102. <xs:list itemType="xs:long"/>
  103. </xs:simpleType>
  104. <xs:simpleType name="TelefonoTipas">
  105. <xs:restriction base="xs:long">
  106. <xs:totalDigits value="9"/>
  107. </xs:restriction>
  108. </xs:simpleType>
  109. <!-- Apribojimo principas-->
  110. <!-- <xs:complexType name="eventNrRestr">
  111. <xs:simpleContent>
  112. <xs:restriction base = "bb:LsEventExt">
  113. <xs:attribute name = "ticketPrice" use="prohibited"/>
  114. </xs:restriction>
  115. </xs:simpleContent>
  116. </xs:complexType>
  117. -->
  118. </xs:schema>