How to create a XSD

BreathtakingCoconut 21 Reputation points
2021-05-30T11:14:00.027+00:00

---------------------------------------------------- XSD --------------------------------------------------

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://meinnamespace.meinefirma.de/"
targetNamespace="http://meinnamespace.meinefirma.de/">
<xs:element name="school">
<xs:complexType>
<xs:sequence>
<xs:element ref="schoolname"/>
<xs:element ref="classroom" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="classroom">
<xs:complexType>
<xs:sequence>
<xs:element ref="classId"/>
<xs:element ref="classname"/>
<xs:element ref="student" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="student">
<xs:complexType>
<xs:sequence>
<xs:element ref="studentId"/>
<xs:element ref="firstname"/>
<xs:element ref="lastname"/>
<xs:element ref="grade"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="schoolname" type="xs:string"/>
<xs:element name="classId" type="xs:int"/>
<xs:element name="classname" type="xs:string"/>
<xs:element name="studentId" type="xs:int"/>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="grade" type="xs:int"/>
</xs:schema>

---------------------------------------------------- XML--------------------------------------------------

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<school xmlns="http://meinnamespace.meinefirma.de/">
<schoolname>HTL-Perg</schoolname>
<classroom>
<classId>0</classId>
<classname>4AHIF</classname>
<student>
<studentId>0</studentId>
<firstname>Tobias</firstname>
<lastname>Hochedlinger</lastname>
<grade>4</grade>
</student>
</classroom>
</school>

Microsoft Partner Center API
{count} votes

Accepted answer
  1. Yitzhak Khabinsky 26,586 Reputation points
    2021-05-30T16:05:34+00:00

    Hi RyanStecken-9661,

    It is not clear what XSD your using: XSD 1.0 or XSD 1.1
    I assumed that it is XSD 1.0

    Here is an XSD for your XML file:

    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://meinnamespace.meinefirma.de/" xmlns:ns1="http://meinnamespace.meinefirma.de/">
      <xs:element name="school">
        <xs:complexType mixed="true">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element ref="ns1:classroom"/>
            <xs:element ref="ns1:schoolname"/>
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name="classroom">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="ns1:classId"/>
            <xs:element ref="ns1:classname"/>
            <xs:element ref="ns1:student"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="classId" type="xs:integer"/>
      <xs:element name="classname" type="xs:string"/>
      <xs:element name="student">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="ns1:studentId"/>
            <xs:element ref="ns1:firstname"/>
            <xs:element ref="ns1:lastname"/>
            <xs:element ref="ns1:grade"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="studentId" type="xs:integer"/>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
      <xs:element name="grade" type="xs:integer"/>
      <xs:element name="schoolname" type="xs:string"/>
    </xs:schema>
    
    0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.