Следующий XML файл проверяет наличие прилагаемого документа xsd. Однако, когда я начинаю удалять такие элементы, как из xml, он проверяет STILL!?
Как написать xsd, который заставляет включать элементы?
<?xml version="1.0" encoding="UTF-8"?>
<Video>
<Title>
</Title>
<Description>
</Description>
<Contributor>
</Contributor>
<Subject>
</Subject>
</Video>
Тогда у меня есть xsd:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UploadXSD"
targetNamespace="http://tempuri.org/UploadXSD.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/UploadXSD.xsd"
xmlns:mstns="http://tempuri.org/UploadXSD.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Video">
<xs:complexType>
<xs:sequence>
<xs:element name="Title" minOccurs="1" type="xs:string"></xs:element>
<xs:element name="Description" minOccurs="1" type="xs:string"></xs:element>
<xs:element name="Contributor" minOccurs="1" type="xs:string"></xs:element>
<xs:element name="Subject" minOccurs="1" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Ваше целевое пространство имен в xsd должно соответствовать пространству имен xml, который вы пытаетесь проверить, т.е.
<Video xmlns="http://tempuri.org/UploadXSD.xsd">
<Title>
</Title>
<Description>
</Description>
<Contributor>
</Contributor>
<Subject>
</Subject>
</Video>
Если вы используете xs:all
, а не xs:sequence
, элементы могут отображаться в любом порядке. Существуют некоторые дополнительные ограничения - например, элементы не могут быть указаны несколько раз с помощью all
(я не уверен, что вы намереваетесь использовать это, ваша схема в настоящее время допускает это.)