2010-01-28 3 views
1

Если мы хотим создать элемент, содержащий как простой контент (таким образом, один из встроенных типов данных), либо атрибуты, то вместо использования элемента <simpleType> мы должны объявить сложный тип и указать, что этот сложный тип будет содержать простой контент. Мы делаем это, используя элемент <extension> под элементом <simpleContent>.Создание элементов с простым контентом и атрибутами

a) Является ли этот новый класс (производным от базового типа до <extension> под элементом <simpleContent>) каким-то образом инкапсулирует как функциональность сборки в базовом типе, так и атрибут (ы)?

b) Используем ли мы <complexType> вместо <simpleType> элемент из-за того, что производный класс будет сложным, даже если он содержит простой контент ?!

c) Все ли сложные типы производятся из какого-то общего базового класса?

Thanx

+0

Я изо всех сил, чтобы понять, что ваш вопрос. Вы, кажется, занимаетесь мыслящими процессами дизайнеров XML Schema, а не спрашиваете нас, как вы должны достичь своего конца. –

+0

Я просто пытаюсь понять, почему дизайнеры Xml Schema решили усложнить этот вопрос, потребовав, чтобы элементы, содержащие как простой контент, так и атрибуты, должны были быть объявлены с использованием , и элементов. Если за кулисами Xml validator и другие приложения не рассматривали элементы и их типы (объявленные с помощью схемы) как объекты какого-то типа, то я не вижу причин, по которым дизайнеры Xml Schema не допускали бы элемент (этот элемент будет содержать оба простой контент и атрибуты), который должен быть объявлен с использованием только элемента – SourceC

ответ

1

Пожалуйста, помните, XML можно рассматривать как сообщение и в то время как мы можем сериализовать его в объекты, объекты содержат в основном свойства. Кажется, вы задаете вопросы о поведении объектов, а не о поведении сообщений.

a) Комплексный тип будет содержать все свойства расширенного xsd и дополнительных элементов/свойств добавляемых узлов simpleContent. После сериализации в объект он будет содержать все свойства сложных и простых типов.

b) simpleType может содержать только атрибуты или текст. Они не могут содержать другие элементы xsd. Вот почему мы используем complexType. Чтобы расширить тип с большим количеством элементов, необходимо использовать complexType.

c) это звучит так: «существует ли класс базового объекта, как на большинстве языков O-O?» Когда вы управляете xsd, вы можете определить, есть ли базовый объект сообщения, содержащий базовые атрибуты и элементы, которые вы хотите, чтобы все xsds имели.

Для получения дополнительной информации, пожалуйста, обращайтесь:

http://www.w3schools.com/schema/default.asp

+0

привет ... если я могу задать два вопроса: A) «... simpleType может содержать только атрибуты или текст. " Но не является ли тип, содержащий простой контент И атрибуты сложного типа? – SourceC

+0

B) «Кажется, вы задаете вопросы о поведении объектов, а не о поведении сообщений». Это правда, но если приложения или средство проверки схемы Xml не рассматривали элементы схемы Xml и их типы как объекты, различная структура? А именно, было бы проще, если кто-то создаст Xml-схему (если приложения или валидатор не будут обрабатывать элементы и их типы как объекты), если они могут объявить тип элемента (содержащий простой контент и атрибуты), используя элемент , а не элемент ? – SourceC

Смежные вопросы