보낸 XML을 사용하여 클라이언트 XML의 유효성을 검사하려고합니다. 개략적으로는 다음과 같습니다XML 유효성 검사 : 요소를 네임 스페이스에 바인딩해야합니까?
는<?xml version="1.0" encoding="UTF-8">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.client.com"
targetNamespace="http://www.client.com"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="0.1">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element ref="Parent" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Parent">
<xs:complexType>
<xs:sequence>
<xs:element name="Child1" type="xs:string"/>
<xs:element name="Child2" type="xs:string" nillable="true"/>
<xs:element name="Child3" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
내가 확인하고 싶은 XML의 예는
<Parent>
<Child1>Entry</Child1>
<Child2 xsi:nil="true"/>
<Child3>Entry</Child3>
</Parent>
내 질문이 있습니다 것 : 위의 XML이 실제로 잘 형성된다? XML에 대한 저의 (열악한) 이해는 'xsi'태그에 네임 스페이스가 필요하다고 생각하게 만듭니다. 그리고 이것이 실제로 유효성을 검사 할 때 우리가 얻는 오류입니다 (태그 'xsi'는 어떤 네임 스페이스에도 연결되어 있지 않습니다). 다음과 같이 XML을 변경하십시오.
<Parent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Child1>Entry</Child1>
<Child2 xsi:nil="true"/>
<Child3>Entry</Child3>
</Parent>
은 우리의 최종 문제를 수정하고 더 이해할 수 있습니다. 그러나 클라이언트는 원래 XML이 XMLSpy 및 VisualStudio에서 유효성을 검사하여 무언가를 놓쳤다 고 말했습니까?
도움을 주시면 감사하겠습니다. 매우 감사합니다!
좋은 장소! 불행히도 나쁘게 복사에 대한 내 잘못. 감사. – user2332163
_real_ 질문을 반영하기 위해 제목을 편집했습니다. '_ 내 질문은 xsi 태그가 바인딩되어 있지 않음을 나타냅니다. 필요한 경우 XMLSpy에서 어째야 XMLSpy에서이를 확인한 것입니까? _' – Alberto