У меня есть следующие XSD:Как использовать xml: lang в xsd/xml?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.vibrogym.com/schema"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.vibrogym.com/schema"
elementFormDefault="qualified" >
<xs:import schemaLocation="http://www.w3.org/2001/xml.xsd"
namespace="http://www.w3.org/XML/1998/namespace"/>
<xs:complexType name="localizedNameType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="xml:lang" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="exercise">
<xs:complexType>
<xs:sequence>
<xs:element name="name"
type="localizedNameType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
И следующий XML:
<?xml version="1.0" encoding="UTF-8"?>
<exercise xmlns="http://www.vibrogym.com/schema">
<name xml:lang="en">test</name>
</exercise>
PhpStorm дает следующее сообщение об ошибке проверки: Element name doesn't have the required attribute lang
.
Правильно ли PHPStorm в предоставлении мне ошибки проверки? Если да, то что я делаю неправильно?
UPDATE
Видимо атрибут localizedNameType
типа use="required"
вызывает ошибку проверки; Почему это неправильно?
Помимо жалобы PHPStorm, ваш пример выглядит нормально. Возможно, PHPStorm будет удовлетворен, если вы добавите объявление пространства имен ('xmlns: xml =" http://www.w3.org/XML/1998/namespace ") в элемент' name' в экземпляре XML? Например: '<имя xml: lang =" en "xmlns: xml =" http://www.w3.org/XML/1998/namespace "> test' – kjhughes