I am getting an error saying Not well formed: Element type "xs:element" must be followed by either attribute specifications, ">" or "/>". All my element tags are nested properly though. No matter what I do, I am still getting the error.
This is my xsd file. I was given an xml file, and asked to develop an xsd file for it.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="createSalesOrder">
<xs:complexType minOccurs="1" maxOccurs="unbounded">
<xs:element name="order">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element name="orderSource">
<xs:simpleType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:sequence>
</xs:simpleType>
</xs:element>
<xs:element name="purchaseOrder">
<xs:simpleType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:sequence>
</xs:simpleType>
</xs:element>
<xs:element name="purchaseOrderType">
<xs:simpleType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:restriction base="xs:string">
<xs:maxLength value="5"/>
</xs:restriction>
</xs:sequence>
</xs:simpleType>
</xs:element>
<xs:element name="purchaseOrderType">
<xs:simpleType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:restriction base="xs:date"/>
</xs:sequence>
</xs:simpleType>
</xs:element>
<xs:element name="orderType">
<xs:simpleType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:sequence>
</xs:simpleType>
</xs:element>
<xs:element name="orderExpiry">
<xs:simpleType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="5"/>
</xs:restriction>
</xs:sequence>
</xs:simpleType>
</xs:element>
<xs:element name="orderConsumerReferenceId">
<xs:simpleType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:sequence>
</xs:simpleType>
</xs:element>
<xs:element name="orderSourceReferenceId">
<xs:simpleType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:restriction base="xs:integer">
<xs:pattern value="\d{8}"/>
</xs:restriction>
</xs:sequence>
</xs:simpleType>
</xs:element>
<xs:element name="shipping">
<xs:complexType>
<xs:sequence>
<xs:element name="requestedDate" type="xs:dateTime"/>
<xs:element name="shipmentOrigin" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="orderCurrency">
<xs:complexType>
<xs:sequence>
<xs:element name="currenyCode" type="xs:string" default="EUR"/>
<xs:element name="currencyExchangeRate" type="xs:integer">
<xs:simpleType minOccurs="1">
<xs:restriction>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="partner">
<xs:complexType>
<xs:sequence>
<xs:element name="partnerRole" type="xs:string"/>
<xs:element name="partnerId"/>
<xs:element name="communicationLanguageCode" type="xs:string"/>
<xs:element name="address" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:all>
<xs:element name="name" type="xs:string"/>
</xs:all>
<xs:element name="value" type="xs:string">
<xs:restriction>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="salesOrganization">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="distributionChannel">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="division">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:maxLength value="2"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="orderTerm" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lineItem" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="lineId" type="xs:integer"/>
<xs:element name="parentLineId">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="12"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="materialFlowType type="xs:integer"/>
<xs:element name="material" minOccurs="1" type="xs:string"/>
<xs:element name="materialDescription" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="orderedQuantity" minOccurs="1" type="xs:integer"/>
<xs:element name="configuration">
<xs:complexType>
<xs:sequence>
<xs:element name="instanceId">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="parentInstanceId">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="quantity" value="xs:integer"/>
<xs:element name="objectKey">
<xs:simpleKey>
<xs:restriction base="xs:string">
<xs:maxLength value="25"/>
</xs:restriction>
</xs:simpleKey>
</xs:element>
<xs:element name="characteristics" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="type" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="value" minOccurs="1">
<xs:simpleType>
<xs:restriction value="xs:string">
<xs:maxLength value="20"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="price">
<xs:complexType>
<xs:sequence>
<xs:element name="name" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxlength value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="value" type="xs:decimal"/>
<xs:element name="currencyCode" type="xs:string" default="EUR" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction>
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="shippingDate">
<xs:complexType>
<xs:sequence>
<xs:element name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="value" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="shipmentOrigin" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="callBackUrl" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:complexType>
</xs:element>
</xs:schema>
A double quote missing in the following line
<xs:element name="materialFlowType type="xs:integer"/>
Correct code
<xs:element name="materialFlowType" type="xs:integer"/>
You have some additional error with the xsd file. In a xs:complexType tag xs:element is not allowed. You need to wrap entire "order" element with xs:sequence tag like this
<xs:sequence>
<xs:element name="order">.....</xs:element>
</xs:sequence>