powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Валидация содержимого (HTML разметки) элемента с помощью XML Schema
41 сообщений из 41, показаны все 2 страниц
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37757832
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть файл XML, который заполняет поставщик (в нем находится описание товаров, причем описание может быть в формате HTML). После того, как файл загружен на сервер, его обрабатывает робот, показывает в контейнере HTML разметку - описание товара, взятую из XML.

Необходимо каким-то образом проверять (с помощью схемы, если можно, еще на стадии валидации XML файла) содержимое HTML, по сути, проверяем валидный (закрыты ли все открытые теги и т.п.) ли HTML код находится в одном из элементов XML файла или нет.

Если такую проверку не делать и поставщик допустит ошибку в форматировании описания HTML, будет испорчена общая верстка страницы, на которой показывается выборка XML.

Есть идеи? Может кто-то уже делал подобное? Задача, мне кажется, распространенная.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37757861
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть незакрытые теги и прочие проблемы синтаксиса, xml-процессор выдаст ошибку при загрузке документа. Ее можно вернуть нерадивому клиенту с просьбой исправить. В чем проблема?
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37757921
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND,

про TIDY почитайте, одно из свойств делать из обычного HTML валидный XHTML, когда пользоваться ее услугами - решать вам, при закачке клиентом контента, перед загрузкой в дом... решать вам.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37759845
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lan,

Нашел в документации два способа, но не знаю каким воспользоваться.

Первый способ:
Схема
Код: xml
1.
2.
3.
4.
5.
6.
7.
<xs:element name="ManufacturerDescription">
                    <xs:complexType mixed="true">
                        <xs:complexContent>
                            <xs:extension base="xs:anyType"/>
                        </xs:complexContent>
                    </xs:complexType>
                </xs:element>




Содержимое файла XML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<ManufacturerDescription >           
        <H1>ООО «ЗАЛУПКИН»</H1>
        <div>Советская, д. 17
        121000, Москва
            <ope>этот тег неизвестный для схемы http://www.w3.org/1999/xhtml</ope>
        Россия
        </div>        
    </ManufacturerDescription>



Парсер ничего не говорит, т.е. все в порядке, все проходит по схеме, но проходят любые теги, т.к. нет определяющей схемы пространства имен для xHTML.

Второй способ:
Схема
Код: xml
1.
2.
3.
4.
5.
6.
7.
 <xs:element name="ManufacturerDescription">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="strict" minOccurs="1" maxOccurs="unbounded"></xs:any>                            
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>



Содержимое файла XML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<ManufacturerDescription >           
        <H1 xmlns="http://www.w3.org/1999/xhtml">ООО «ЗАЛУПКИН»</H1>
        <div>Советская, д. 17
        121000, Москва
            <ope>этот тег неизвестный для схемы http://www.w3.org/1999/xhtml</ope>
        Россия
        </div>        
    </ManufacturerDescription>



Парсер выдает ошибку для <div>-ва, т.к. в нем не указано явно пространство имен. Как сделать так, чтобы пользователь, когда записывал значения в это поле файла не утруждался и не писал каждому тегу пространство имен? Причем тег <H1> проходит только, если атрибут processContents="skip", а при processContents="strict" ругается, даже не смотря на, явное указание пространства имен.

Чутье подсказывает, что нужно использовать второй вариант, но как заставить работать, как надо пока не пойму.

Нужно, со вторым вариантом схемы прийти к такому:
Содержимое файла XML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<ManufacturerDescription >           
        <h1>ООО «ЗАЛУПКИН»</h1>
        <div>Советская, д. 17
        121000, Москва
            <ope>этот тег неизвестный для схемы http://www.w3.org/1999/xhtml</ope> - здесь парсер должен ругаться!
        Россия
        </div>        
    </ManufacturerDescription>




Помогите!
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37760089
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<body xmlns="http://www.w3.org/1999/xhtml">
  <H1>ООО «ЗАЛУПКИН»</H1>
  <div>Советская, д. 17
     121000, Москва
        <ope>этот тег неизвестный для схемы http://www.w3.org/1999/xhtml</ope>
    Россия
    </div>
</body> 
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37760935
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Работает, спасибо! Существует ли другой способ (например, где-то в схеме прописать или как-нибудь обертывать автоматически контент)?

Сразу вопрос вдогонку. Как составить регулярное выражение, чтобы на этапе валидации содержимое HTML было невелидным, если встречается <a href="любой URI".....> и <img src="любой URI">?
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37761530
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND(например, где-то в схеме прописать или как-нибудь обертывать автоматически контент)?Схема не создает контента, поэтому все вопросы к тому, кто этот XML создает
Santa_RNDКак составить регулярное выражение, чтобы на этапе валидации содержимое HTML было невелидным, если встречаетсяЯвно перечислить все допустимые элементы
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37761532
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Ок. А что делать с ссылками и изображениями, как их проверять на этапе валидации?
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37761554
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RNDОк. А что делать с ссылками и изображениями, как их проверять на этапе валидации?А как Вы хотите их проверять?
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37761564
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

У поставщиков-клиентов, которые заполняют описание копирайтеры могут по ошибке вставить HTML, содержащий какой-либо CTRL+C | CTRL+V кусок размести (в том числе ссылки и изображения). Нужно, чтобы схема умела говорить - "Поле такое-то содержит запрещенные теги (<a>, <img>)". То что на стороне сервера будет это уже другой вопрос, хочется клиенту сообщать о том, что он не прав на этапе валидации схемой. Надеюсь, доступно объяснил.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37761659
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RNDхочется клиенту сообщать о том, что он не прав на этапе валидации схемой._Vasilisk_Явно перечислить все допустимые элементы
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37761663
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Благодарю. Надеялся, что можно по-другому, но нет(
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37761699
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND,

Можете пример привести, как правильно все допустимые теги перечислить в схеме для содержимого Element "ManufacturerDescription"? Я так понимаю, нужно первый вариант будет использовать (без указания пространства имен - http://www.w3.org/1999/xhtml)?
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37762080
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно определить отдельную схему в пространстве имен http://www.w3.org/1999/xhtml)?%5Dhttp://www.w3.org/1999/xhtml(%D0%B8%D0%BB%D0%B8]http://www.w3.org/1999/xhtml)?]http://www.w3.org/1999/xhtml(или скачать ее с w3c) и проимпортировать єту схему в основную

RTFM xsd:import
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37762087
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

можно пример? сроки горят, я третий день, как с XML Schema сзязался, пока еще не в зуб ногой(
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37762108
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RNDможно пример?Две схемы с различными targetNamespace

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<xsd:schema targetNameSpace="http://www.w3.org/">

  <xsd:element name="html"/>

</xsd:schema>

<xsd:schema targetNameSpace="my:uri"
  xmlns:w3="http://www.w3.org/">

  <xsd:import namespace="http://www.w3.org/" schemaLocation="w3.xsd" />
  <xsd:element name="root">
    ..................
      <xsd:element ref="w3:html"/>
    .............
  </xsd:element>

</xsd:schema>
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37762114
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Кажется, понял. Попробую, обязательно отпишусь о своих успехах.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37766201
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

пришли, пожалуйста, свою почту в личку, вышлю схему и тестовый файл с данными, что-то никак не получается( Ругается на то, что не может схемы забрать из URI.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37766284
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь к сообщению можно прикреплять файлы
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37766299
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

ок. сразу не заметил.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37766300
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND,
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37766302
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND,

sample
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37766389
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND,

Сравните это
Код: xml
1.
<xs:include schemaLocation="http://www.w3.org/1999/xhtml"></xs:include>


и это
_Vasilisk_
Код: xml
1.
<xsd:import namespace="http://www.w3.org/" schemaLocation="w3.xsd" />

и найдите отличия
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37766404
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

w3.xsd - так эту схему нужно скачать и положить в какую-то директорию? где ее взять?

schemaLocation="w3.xsd" - говорит о том, что схема лежит в той же папке или я не прав?

что-то запутался.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37766496
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RNDчто-то запутался.
_Vasilisk_
Код: javascript
1.
<xs:include schemaLocation="http://www.w3.org/1999/xhtml"></xs:include>


_Vasilisk_
Код: javascript
1.
<xsd:import namespace="http://www.w3.org/" schemaLocation="w3.xsd" />
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37767167
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

сорри, конечно, но я не полный идиот) см. скриншот.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37767169
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

см. вложенный скриншот
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37767181
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND,

Мне больше Вам помочь нечем. Если Вы не понимаете разницу между xsd:include и xsd:import и не в состоянии прочитать документацию, то Вам остается только найти того кто это сможет сделать
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37767185
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Я прекрасно ее понимаю. Дело в другом, видимо, Вы меня не поняли(
Когда я пишу xsd:include и(или) xsd:import в одной из схем, мой редактор oXygen выдет ошибку о том, что не может найти по указанному URI схему.

Для " <xs:import namespace=" http://www.w3.org/" schemaLocation="w3.xsd" />"

System ID: D:\MyProjects\ExchangeFormatForSoftwareVendors\manufacturerSchema.xsd
Main validation file: D:\MyProjects\ExchangeFormatForSoftwareVendors\manufacturer.xml
Schema: D:\MyProjects\ExchangeFormatForSoftwareVendors\manufacturerSchema.xsd
Engine name: Xerces
Severity: warning
Description: schema_reference.4: Failed to read schema document 'w3.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.
Start location: 4:73
URL: http://www.w3.org/TR/xmlschema-1/#schema_reference

Для "<xs:include schemaLocation=" http://www.w3.org/1999/xhtml"></xs:include>" выдает тоже самое...

Вопрос уже в другом, где взять эту стандартную схему (их нужно явно скачивать?), ПОЧЕМУ РЕДАКТОР НЕ НАХОДИТ СХЕМЫ ПО ЗАДАННЫМ URI???
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37767221
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RNDПОЧЕМУ РЕДАКТОР НЕ НАХОДИТ СХЕМЫ ПО ЗАДАННЫМ URI???А она там есть?

Тынц
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37767245
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Указал верный путь, сорри, тупняк словил(

Все равно не пойму, как заставить проверяться поле "ManufacturerFullDescription" без
<body xmlns=" http://www.w3.org/1999/xhtml">
....

</body>

просит либо каждому элементу прописывать пространство имен или окружать <body>, а хочется, чтобы было валидным следующее:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
         <div>
            <h1>ООО «ЗАЛУПКИН»</h1>
            <div>Советская, д. 17
                121000, Москва <a href=""></a>
                <ope>этот тег неизвестный для схемы http://www.w3.org/1999/xhtml</ope> - здесь парсер может ругнуться, если стоит параметр strict.
                Россия
            </div>
        </div> 



Не пойму, как сделать так, чтобы все содержимое по-умолчанию было в нужном пространстве имен.

P.S. В вашем коде (примере), как выяснилось, ничего не понял:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<xsd:schema targetNameSpace="http://www.w3.org/">

  <xsd:element name="html"/>

</xsd:schema>

<xsd:schema targetNameSpace="my:uri"
  xmlns:w3="http://www.w3.org/">

  <xsd:import namespace="http://www.w3.org/" schemaLocation="w3.xsd" />
  <xsd:element name="root">
    ..................
      <xsd:element ref="w3:html"/>
    .............
  </xsd:element>

</xsd:schema>



Сейчас схема выглядит так:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xml:lang="ru" version="1.0">
    <!-- <xs:include schemaLocation="http://www.w3.org/1999/xhtml"></xs:include> -->
    <xs:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" />
    <xs:annotation><xs:documentation>Схема определяет тип документа "Производитель/вендор".</xs:documentation></xs:annotation>
    <xs:element name="Manufacturer">
        <xs:annotation>
            <xs:documentation>Описывает тип документа "Производитель/вендор".</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ManufacturerName">
                    <xs:annotation>
                        <xs:documentation>Полное название производителя/вендора.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:normalizedString"/>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="ManufacturerLogotype" minOccurs="1" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>Логотип производителя/вендора. Ссылка на логотип.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ManufacturerSite" default="" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>Веб-сайт производителя/вендора. Ссылка на веб-сайт.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ManufacturerPhone">
                    <xs:annotation>
                        <xs:documentation>Телефон производителя/вендора.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string"/>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="ManufacturerEmail">
                    <xs:annotation>
                        <xs:documentation>E-mail адрес производителя/вендора.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string"/>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="ManufacturerShortDescription">
                    <xs:annotation>
                        <xs:documentation>Краткое описание производителя/вендора в формате HTML.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType mixed="true">
                        <xs:complexContent>
                            <xs:extension base="xs:anyType"/>
                        </xs:complexContent>
                    </xs:complexType>
                </xs:element>
                <xs:element name="ManufacturerFullDescription">                    
                    <xs:annotation>
                        <xs:documentation>Полное описание производителя/вендора в формате HTML.</xs:documentation>
                    </xs:annotation>                    
                    <xs:complexType>                        
                        <xs:sequence>                            
                            <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="strict" minOccurs="1" maxOccurs="unbounded"></xs:any>                            
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37767883
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RNDВсе равно не пойму, как заставить проверяться поле "ManufacturerFullDescription" без
<body xmlns=" http://www.w3.org/1999/xhtml">
....

</body>Все элементы у, которых, явно не указано пространство имен имеют пространство имен родительского элемента. Соответственно Вам нужно указать для одного корневого элемента нужное пространство имен
Santa_RND
Код: xml
1.
<xs:any namespace="http://www.w3.org/1999/xhtml" processContents="strict" minOccurs="1" maxOccurs="unbounded"></xs:any>                            

Это не нужно. нужно, что-то типа такого
Код: xml
1.
<xsd:element ref="html:div"/>
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37767949
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Уже пробовал, но парсер ругается(

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
                <xs:element name="ManufacturerFullDescription">                    
                    <xs:annotation>
                        <xs:documentation>Полное описание производителя/вендора в формате HTML.</xs:documentation>
                    </xs:annotation>                    
                    <xs:complexType>                           
                        <xs:sequence>
                            <xs:element ref="html:div"/>                                                                                   
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>



Ошибка:

System ID: D:\MyProjects\ExchangeFormatForSoftwareVendors\manufacturerSchema.xsd
Main validation file: D:\MyProjects\ExchangeFormatForSoftwareVendors\manufacturer.xml
Schema: D:\MyProjects\ExchangeFormatForSoftwareVendors\manufacturerSchema.xsd
Engine name: Xerces
Severity: error
Description: s4s-att-invalid-value: Invalid attribute value for 'ref' in element 'element'. Recorded reason: UndeclaredPrefix: Cannot resolve 'html:div' as a QName: the prefix 'html' is not declared.
Start location: 62:57


Ругается на префикс, смотрел схему, там нет просто "html" префикса.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37768074
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RNDРугается на префикс, смотрел схему, там нет просто "html" префикса.Так в своей схеме его определите
Код: xml
1.
2.
3.
4.
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:html=""http://www.w3.org/1999/xhtml"
  elementFormDefault="qualified" xml:lang="ru" version="1.0">



P.S. Может хватит издеваться и пришло время прочитать документацию?
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37768083
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Совсем не издеваюсь, правда! Документацию перечитываю, пробую, но возникают вопросы, СПАСИБО ВАМ БОЛЬШОЕ!
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37768214
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND,

Я вот только сейчас подумал, может это не возможно написать схему таким образом, чтобы root (по отношению к содержимому заданного element) был без уточнения пространства имен "xmlns=" http://www.w3.org/1999/xhtml".


Схема:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:html="http://www.w3.org/1999/xhtml" elementFormDefault="qualified" xml:lang="ru" version="1.0">
    <!-- <xs:include schemaLocation="http://www.w3.org/1999/xhtml"></xs:include> -->
    <xs:import namespace="http://www.w3.org/1999/xhtml" schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" />
    <xs:annotation><xs:documentation>Схема определяет тип документа "Производитель/вендор".</xs:documentation></xs:annotation>
    <xs:element name="Manufacturer">
        <xs:annotation>
            <xs:documentation>Описывает тип документа "Производитель/вендор".</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="ManufacturerName">
                    <xs:annotation>
                        <xs:documentation>Полное название производителя/вендора.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:normalizedString"/>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="ManufacturerLogotype" minOccurs="1" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>Логотип производителя/вендора. Ссылка на логотип.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ManufacturerSite" default="" type="xs:anyURI">
                    <xs:annotation>
                        <xs:documentation>Веб-сайт производителя/вендора. Ссылка на веб-сайт.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ManufacturerPhone">
                    <xs:annotation>
                        <xs:documentation>Телефон производителя/вендора.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string"/>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="ManufacturerEmail">
                    <xs:annotation>
                        <xs:documentation>E-mail адрес производителя/вендора.</xs:documentation>
                    </xs:annotation>
                    <xs:simpleType>
                        <xs:restriction base="xs:string"/>
                    </xs:simpleType>
                </xs:element>
                <xs:element name="ManufacturerShortDescription">
                    <xs:annotation>
                        <xs:documentation>Краткое описание производителя/вендора в формате HTML.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>                                                  
                        <xs:sequence>
                            <xs:element ref="html:div"></xs:element>                                                        
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="ManufacturerFullDescription">                    
                    <xs:annotation>
                        <xs:documentation>Полное описание производителя/вендора в формате HTML.</xs:documentation>
                    </xs:annotation>                    
                    <xs:complexType>                                                  
                        <xs:sequence>
                            <xs:element ref="html:div"></xs:element>                                                        
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>



Файл-пример:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<?xml version="1.0" encoding="UTF-8"?>
<Manufacturer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:noNamespaceSchemaLocation="file:/D:/MyProjects/ExchangeFormatForSoftwareVendors/ManufacturerSchema.xsd">
    <ManufacturerName>
        Microsoft
    </ManufacturerName>
    <ManufacturerLogotype>
        http://www.microsoft.com/
    </ManufacturerLogotype>
    <ManufacturerSite>
        http://www.microsoft.com
    </ManufacturerSite>
    <ManufacturerPhone>
        +7(495)765-71-71
    </ManufacturerPhone>
    <ManufacturerEmail>
        info@microsoft.ru
    </ManufacturerEmail>
    <ManufacturerShortDescription>
        <div xmlns="http://www.w3.org/1999/xhtml">     
        <h1>ООО «Майкрософт Рус»</h1>
        Крылатская улица, д. 17
        121614, Москва text
        Россия        
        </div>
    </ManufacturerShortDescription>
    <ManufacturerFullDescription>           
       <div xmlns="http://www.w3.org/1999/xhtml">        
            <h1>ООО «ЗАЛУПКИН»</h1>
            <div>Советская, д. 17
                121000, Москва <em>eeeeemaaa</em> <a href=""></a>
                этот тег неизвестный для схемы http://www.w3.org/1999/xhtml
                Россия
            </div>
       </div>     
    </ManufacturerFullDescription>
</Manufacturer>



В любом случае первый вложенный элемент в ManufacturerShortDescription должен содержать
< ELEMENT NAME xmlns=" http://www.w3.org/1999/xhtml"> ((((((((((((((

В моем случае ELEMENT NAME - div
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37768331
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы читаете, что Вам пишут?_Vasilisk_Все элементы у, которых, явно не указано пространство имен имеют пространство имен родительского элемента.
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37768342
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,



Да, я знаю об этом! Я спрашивал о том, как переопределить (включить в пространство имен по-умолчанию) все теги HTML из стандартной схемы. Может, Вы меня не поняли?
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37768359
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RNDкак переопределить (включить в пространство имен по-умолчанию) все теги HTML из стандартной схемыЭто очевидно - изменить стандартную схему
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37768368
Фотография Santa_RND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

Оставьте свою ICQ или скайп, есть предложение...
...
Рейтинг: 0 / 0
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
    #37768518
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Santa_RND,

146432973
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Валидация содержимого (HTML разметки) элемента с помощью XML Schema
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]