Reputation: 2202
I have been given this XSD (simplified):
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:ns0="https://MDR.Employees.Schemas.MDREmployeePropertySchema" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1" elementFormDefault="qualified" targetNamespace="http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<b:imports xmlns:b="http://schemas.microsoft.com/BizTalk/2003">
<b:namespace prefix="ns0" uri="https://MDR.Employees.Schemas.MDREmployeePropertySchema" location=".\mdremployeepropertyschema.xsd" />
</b:imports>
</xs:appinfo>
</xs:annotation>
<xs:element name="Employees">
<xs:annotation>
<xs:appinfo>
<b:properties>
<b:property name="ns0:HeromaRefId" xpath="/*[local-name()='Employees' and namespace-uri()='http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1']/*[local-name()='Employee' and namespace-uri()='http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1']/*[local-name()='ID' and namespace-uri()='http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1']" />
</b:properties>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Employee">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
And this XML example (simplified) which is the format that the client will send me:
<?xml version="1.0" encoding="utf-16"?>
<ns0:Employees xmlns:ns0="http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Employee>
</Employee>
</ns0:Employees>
The xml doesn't validate against the XSD. What can I change in the XSD to have the xml validated?
Upvotes: 0
Views: 1148
Reputation: 1477
Use XSD following XSD ..XML will be validated against This XSD
<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns:ns0="https://MDR.Employees.Schemas.MDREmployeePropertySchema" xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns="http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1" elementFormDefault="unqualified" targetNamespace="http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<b:imports xmlns:b="http://schemas.microsoft.com/BizTalk/2003">
<b:namespace prefix="ns0" uri="https://MDR.Employees.Schemas.MDREmployeePropertySchema" location=".\mdremployeepropertyschema.xsd" />
</b:imports>
</xs:appinfo>
</xs:annotation>
<xs:element name="Employees">
<xs:annotation>
<xs:appinfo>
<b:properties>
<b:property name="ns0:HeromaRefId" xpath="/*[local-name()='Employees' and namespace-uri()='http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1']/*[local-name()='Employee' and namespace-uri()='http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1']/*[local-name()='ID' and namespace-uri()='http://schemas.customer.com/MdrEntitymodel/EmployeeExternalV1']" />
</b:properties>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Employee">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Just change elementFormDefault="qualified" to elementFormDefault="unqualified". It will work.
Upvotes: 1