Ошибка: пространство имен схемы элемента должно быть из пространства имен схемы http://www.w3.org/2001/XMLSchema
Ниже мой XSD. Я получаю ошибки. Не могли бы вы подтвердить это?
<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://api.vvz.com/"
xmlns:vz="http://api.vvz.com/"
targetNamespace="http://api.vvz.com/">
<vz:element name="Account">
<annotation>
<documentation>
A sample element
</documentation>
</annotation>
<simpleType name="ID">
<restriction base="xs:string">
<pattern value='[a-zA-Z0-9]'/>
</restriction>
</simpleType>
<complexType>
<complexContent>
<sequence>
<element minOccurs="0" maxOccurs="unbounded" name="fieldsToNull"
nillable="true" type="string"/>
<element minOccurs="0" maxOccurs="1" name="Id" nillable="true"
type="vz:ID"/>
</sequence>
</complexContent>
</complexType>
</vz:element>
</xsd:schema>
Ошибка
Пространство имен схемы элемента должно быть из пространства имен схемы " http://www.w3.org/2001/XMLSchema"
Пожалуйста, помогите мне.
2 ответа
Ваша немедленная ошибка относительно целевого пространства имен связана с объявлением xmlns="http://api.vvz.com/"
на xsd:schema
, Удалить это. Вам не нужен сам XSD в этом пространстве имен; вам нужен управляемый XML в этом пространстве имен, и это уже достигается с помощью targetNamespace="http://api.vvz.com/"
,
В остальной части вашего XSD есть много ошибок и неясных целей. Вот один набор последовательных исправлений, которые делают его действительным:
<?xml version="1.0" encoding="windows-1252" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:vz="http://api.vvz.com/"
targetNamespace="http://api.vvz.com/">
<xsd:element name="Account" type="vz:AccountType">
<xsd:annotation>
<xsd:documentation>
A sample element
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="AccountType">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="fieldsToNull"
nillable="true" type="xsd:string"/>
<xsd:element minOccurs="0" maxOccurs="1" name="Id" nillable="true"
type="vz:IdType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="IdType">
<xsd:restriction base="xsd:string">
<xsd:pattern value='[a-zA-Z0-9]'/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
Было несколько проблем:
- Все элементы, из которых состоит схема, должны находиться в пространстве имен схемы XML (используйте
xsd
префикс). - Именованный простой тип должен быть верхнего уровня.
- Ссылки на встроенный тип
string
также должен находиться в пространстве имен схемы XML (xsd
префикс). Элемент
complexContent
был посторонним.<?xml version="1.0" encoding="windows-1252" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://api.vvz.com/" xmlns:vz="http://api.vvz.com/" targetNamespace="http://api.vvz.com/"> <xsd:simpleType name="ID"> <xsd:restriction base="xsd:string"> <xsd:pattern value='[a-zA-Z0-9]'/> </xsd:restriction> </xsd:simpleType> <xsd:annotation> <xsd:documentation> A sample element </xsd:documentation> </xsd:annotation> <xsd:element name="Account"> <xsd:complexType> <xsd:sequence> <xsd:element minOccurs="0" maxOccurs="unbounded" name="fieldsToNull" nillable="true" type="xsd:string"/> <xsd:element minOccurs="0" maxOccurs="1" name="Id" nillable="true" type="vz:ID"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>