Использование префикса пространства имен XSD в атрибутах типа XSD - PullRequest
0 голосов
/ 10 июля 2020

В ресурсах, таких как this , мы видим такие примеры:

<xs:element name="name" type="xs:string"/>

Где тип указан как "xs:string". Предполагается ли это, что пространство имен XSD имеет префикс xs.

Например, законно ли открывать наш XSD-документ примерно так?

<foo:schema xmlns:foo="http://www.w3.org/2001/XMLSchema">

И если бы мы это сделали, то первый пример станет?

<foo:element name="name" type="foo:string"/>

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Предполагается ли, что пространство имен схемы XSD имеет псевдоним (не уверен, что это правильный термин) как xs.

Да, префиксы пространства имен, такие как xs, должны быть объявлено:

xmlns:xs="http://www.w3.org/2001/XMLSchema"

Да, вы могли бы использовать foo вместо xs, но go с xs или xsd, поскольку они стали условными и удивят читателей минимум.

Если вы определяете типы непосредственно в своем XML, вы также захотите объявить

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

и использовать его:

xsi:type="xs:string"

См. Также Как ограничить значение элемента XML с помощью xsi: type в XSD?

0 голосов
/ 10 июля 2020

Да, я нашел более простой способ ответить на этот вопрос, чем искать и читать. При использовании Oxygen XML допустимо следующее:

<?xml version="1.0" encoding="UTF-8"?>
<foo:schema xmlns:foo="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <foo:simpleType name="newSimpleType">
        <foo:restriction base="foo:string"/>
    </foo:simpleType>
</foo:schema>
...