XML : How to use substitution in xml schema

I have the following xml schema:

  <?xml version="1.0"?>    
  <xsd:element name="Event" type="eventType"/>  <xsd:element name="Lesson" type="lessonType" substitutionGroup="Event"/>  <xsd:element name="Seminar" type="seminarType" substitutionGroup="Event"/>  <xsd:element name="Lab" type="labType" substitutionGroup="Event"/>    <xsd:element name="Schedule">      <xsd:complexType>          <xsd:sequence>          <xsd:element ref="Event" maxOccurs="unbounded"></xsd:element>          </xsd:sequence>      </xsd:complexType>  </xsd:element>    <xsd:complexType name="eventType">      <xsd:sequence>          <xsd:element name="Title" type="xsd:string">          </xsd:element>          <xsd:element name="Lecture" maxOccurs="5" minOccurs="1">              <xsd:complexType>                  <xsd:sequence>                      <xsd:element name="Day">                          <xsd:simpleType>                              <xsd:restriction base="xsd:string">                                  <xsd:enumeration value="Monday">                                  </xsd:enumeration>                                  <xsd:enumeration value="Tuesday">                                  </xsd:enumeration>                                  <xsd:enumeration value="Wednesday">                                  </xsd:enumeration>                                  <xsd:enumeration value="Thursday">                                  </xsd:enumeration>                                  <xsd:enumeration value="Friday">                                  </xsd:enumeration>                                  <xsd:enumeration value="Saturday">                                  </xsd:enumeration>                                  <xsd:enumeration value="Sunday">                                  </xsd:enumeration>                              </xsd:restriction>                          </xsd:simpleType>                      </xsd:element>                      <xsd:element name="Time">                          <xsd:simpleType>                              <xsd:restriction base="xsd:string">                                  <xsd:length value="11">                                  </xsd:length>                                  <xsd:pattern value="(([0-1][0-9])|(2[0-3])):[0-5][0-9]-(([0-1][0-9])|(2[0-3])):[0-5][0-9]">                                  </xsd:pattern>                              </xsd:restriction>                          </xsd:simpleType>                      </xsd:element>                  </xsd:sequence>                  <xsd:attribute name="Classroom" use="required">                      <xsd:simpleType>                          <xsd:restriction base="xsd:string">                              <xsd:maxLength value="4">                              </xsd:maxLength>                          </xsd:restriction>                      </xsd:simpleType>                  </xsd:attribute>              </xsd:complexType>          </xsd:element>      </xsd:sequence>  </xsd:complexType>    <xsd:complexType name="lessonType">      <xsd:complexContent>          <xsd:extension base="eventType">              <xsd:sequence>                  <xsd:element name="Professor" type="xsd:string">                  </xsd:element>              </xsd:sequence>          </xsd:extension>      </xsd:complexContent>  </xsd:complexType>    <xsd:complexType name="seminarType">      <xsd:complexContent>          <xsd:restriction base="eventType">              <xsd:sequence>                  <xsd:element name="Lecture" maxOccurs="1" minOccurs="1"></xsd:element>              </xsd:sequence>          </xsd:restriction>      </xsd:complexContent>  </xsd:complexType>    <xsd:complexType name="labType">      <xsd:complexContent>          <xsd:restriction base="eventType">              <xsd:attribute name="Classroom" use="prohibited"></xsd:attribute>          </xsd:restriction>      </xsd:complexContent>  </xsd:complexType>    

and i want to assign a xml to this xml schema. The xml is written above but i have 2 errors: 1) element Lab must have no character or information since its type is empty and 2) invalid content was found with element TItle one of schedule:lecture is expercted

  <Schedule xsi:schemaLocation="schedule ..\9\schedule_9.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="schedule">  <Lesson>      <Title>Artificial Intelligence</Title>      <Lecture Classroom="BA">          <Day>Wednesday</Day>          <Time>09:00-11:00</Time>      </Lecture>      <Lecture Classroom="BA">          <Day>Thursday</Day>          <Time>09:00-11:00</Time>      </Lecture>      <Professor>Hatzilygeroudis</Professor>  </Lesson>  <Lab>      <Title>Artificial Intelligence</Title>      <Lecture>          <Day>Friday</Day>          <Time>17:00-18:00</Time>      </Lecture>  </Lab>  <Seminar>      <Title>Constraint Satisfaction Problems</Title>      <Lecture Classroom="B3">          <Day>Monday</Day>          <Time>19:00-21:00</Time>      </Lecture>  </Seminar>  <Lesson>      <Title>Knowledge Representation in Web</Title>      <Lecture Classroom="P200">          <Day>Friday</Day>          <Time>15:00-17:00</Time>      </Lecture>      <Professor>Hatzilygeroudis</Professor>  </Lesson>    

No comments:

Post a Comment