|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Есть файл XML, который заполняет поставщик (в нем находится описание товаров, причем описание может быть в формате HTML). После того, как файл загружен на сервер, его обрабатывает робот, показывает в контейнере HTML разметку - описание товара, взятую из XML. Необходимо каким-то образом проверять (с помощью схемы, если можно, еще на стадии валидации XML файла) содержимое HTML, по сути, проверяем валидный (закрыты ли все открытые теги и т.п.) ли HTML код находится в одном из элементов XML файла или нет. Если такую проверку не делать и поставщик допустит ошибку в форматировании описания HTML, будет испорчена общая верстка страницы, на которой показывается выборка XML. Есть идеи? Может кто-то уже делал подобное? Задача, мне кажется, распространенная. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2012, 18:39 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Если есть незакрытые теги и прочие проблемы синтаксиса, xml-процессор выдаст ошибку при загрузке документа. Ее можно вернуть нерадивому клиенту с просьбой исправить. В чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2012, 19:02 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RND, про TIDY почитайте, одно из свойств делать из обычного HTML валидный XHTML, когда пользоваться ее услугами - решать вам, при закачке клиентом контента, перед загрузкой в дом... решать вам. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.04.2012, 19:34 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
mage.lan, Нашел в документации два способа, но не знаю каким воспользоваться. Первый способ: Схема Код: xml 1. 2. 3. 4. 5. 6. 7.
Содержимое файла XML Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
Парсер ничего не говорит, т.е. все в порядке, все проходит по схеме, но проходят любые теги, т.к. нет определяющей схемы пространства имен для xHTML. Второй способ: Схема Код: xml 1. 2. 3. 4. 5. 6. 7.
Содержимое файла XML Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
Парсер выдает ошибку для <div>-ва, т.к. в нем не указано явно пространство имен. Как сделать так, чтобы пользователь, когда записывал значения в это поле файла не утруждался и не писал каждому тегу пространство имен? Причем тег <H1> проходит только, если атрибут processContents="skip", а при processContents="strict" ругается, даже не смотря на, явное указание пространства имен. Чутье подсказывает, что нужно использовать второй вариант, но как заставить работать, как надо пока не пойму. Нужно, со вторым вариантом схемы прийти к такому: Содержимое файла XML Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
Помогите! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2012, 19:43 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.04.2012, 22:27 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Работает, спасибо! Существует ли другой способ (например, где-то в схеме прописать или как-нибудь обертывать автоматически контент)? Сразу вопрос вдогонку. Как составить регулярное выражение, чтобы на этапе валидации содержимое HTML было невелидным, если встречается <a href="любой URI".....> и <img src="любой URI">? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 13:43 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RND(например, где-то в схеме прописать или как-нибудь обертывать автоматически контент)?Схема не создает контента, поэтому все вопросы к тому, кто этот XML создает Santa_RNDКак составить регулярное выражение, чтобы на этапе валидации содержимое HTML было невелидным, если встречаетсяЯвно перечислить все допустимые элементы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 17:22 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Ок. А что делать с ссылками и изображениями, как их проверять на этапе валидации? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 17:24 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RNDОк. А что делать с ссылками и изображениями, как их проверять на этапе валидации?А как Вы хотите их проверять? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 17:31 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, У поставщиков-клиентов, которые заполняют описание копирайтеры могут по ошибке вставить HTML, содержащий какой-либо CTRL+C | CTRL+V кусок размести (в том числе ссылки и изображения). Нужно, чтобы схема умела говорить - "Поле такое-то содержит запрещенные теги (<a>, <img>)". То что на стороне сервера будет это уже другой вопрос, хочется клиенту сообщать о том, что он не прав на этапе валидации схемой. Надеюсь, доступно объяснил. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 17:34 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RNDхочется клиенту сообщать о том, что он не прав на этапе валидации схемой._Vasilisk_Явно перечислить все допустимые элементы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 18:08 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Благодарю. Надеялся, что можно по-другому, но нет( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 18:10 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RND, Можете пример привести, как правильно все допустимые теги перечислить в схеме для содержимого Element "ManufacturerDescription"? Я так понимаю, нужно первый вариант будет использовать (без указания пространства имен - http://www.w3.org/1999/xhtml)? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 18:32 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Нужно определить отдельную схему в пространстве имен 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 23:10 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, можно пример? сроки горят, я третий день, как с XML Schema сзязался, пока еще не в зуб ногой( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 23:14 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RNDможно пример?Две схемы с различными targetNamespace Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 23:28 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Кажется, понял. Попробую, обязательно отпишусь о своих успехах. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2012, 23:31 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, пришли, пожалуйста, свою почту в личку, вышлю схему и тестовый файл с данными, что-то никак не получается( Ругается на то, что не может схемы забрать из URI. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 13:51 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Здесь к сообщению можно прикреплять файлы ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 14:33 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, ок. сразу не заметил. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 14:39 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RND, ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 14:39 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RND, sample ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 14:40 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RND, Сравните это Код: xml 1.
и это _Vasilisk_ Код: xml 1.
и найдите отличия ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 15:16 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, w3.xsd - так эту схему нужно скачать и положить в какую-то директорию? где ее взять? schemaLocation="w3.xsd" - говорит о том, что схема лежит в той же папке или я не прав? что-то запутался. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 15:20 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RNDчто-то запутался. _Vasilisk_ Код: javascript 1.
_Vasilisk_ Код: javascript 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 16:05 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, сорри, конечно, но я не полный идиот) см. скриншот. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 22:35 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, см. вложенный скриншот ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 22:35 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RND, Мне больше Вам помочь нечем. Если Вы не понимаете разницу между xsd:include и xsd:import и не в состоянии прочитать документацию, то Вам остается только найти того кто это сможет сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 22:46 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_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??? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 22:52 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2012, 23:22 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Указал верный путь, сорри, тупняк словил( Все равно не пойму, как заставить проверяться поле "ManufacturerFullDescription" без <body xmlns=" http://www.w3.org/1999/xhtml"> .... </body> просит либо каждому элементу прописывать пространство имен или окружать <body>, а хочется, чтобы было валидным следующее: Код: xml 1. 2. 3. 4. 5. 6. 7. 8.
Не пойму, как сделать так, чтобы все содержимое по-умолчанию было в нужном пространстве имен. P.S. В вашем коде (примере), как выяснилось, ничего не понял: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Сейчас схема выглядит так: Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 00:00 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RNDВсе равно не пойму, как заставить проверяться поле "ManufacturerFullDescription" без <body xmlns=" http://www.w3.org/1999/xhtml"> .... </body>Все элементы у, которых, явно не указано пространство имен имеют пространство имен родительского элемента. Соответственно Вам нужно указать для одного корневого элемента нужное пространство имен Santa_RND Код: xml 1.
Это не нужно. нужно, что-то типа такого Код: xml 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 12:12 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Уже пробовал, но парсер ругается( Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ошибка: 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" префикса. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 12:36 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RNDРугается на префикс, смотрел схему, там нет просто "html" префикса.Так в своей схеме его определите Код: xml 1. 2. 3. 4.
P.S. Может хватит издеваться и пришло время прочитать документацию? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 13:13 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Совсем не издеваюсь, правда! Документацию перечитываю, пробую, но возникают вопросы, СПАСИБО ВАМ БОЛЬШОЕ! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 13:15 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
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 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.
В любом случае первый вложенный элемент в ManufacturerShortDescription должен содержать < ELEMENT NAME xmlns=" http://www.w3.org/1999/xhtml"> (((((((((((((( В моем случае ELEMENT NAME - div ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 14:11 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Вы читаете, что Вам пишут?_Vasilisk_Все элементы у, которых, явно не указано пространство имен имеют пространство имен родительского элемента. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 15:05 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Да, я знаю об этом! Я спрашивал о том, как переопределить (включить в пространство имен по-умолчанию) все теги HTML из стандартной схемы. Может, Вы меня не поняли? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 15:09 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
Santa_RNDкак переопределить (включить в пространство имен по-умолчанию) все теги HTML из стандартной схемыЭто очевидно - изменить стандартную схему ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 15:14 |
|
Валидация содержимого (HTML разметки) элемента с помощью XML Schema
|
|||
---|---|---|---|
#18+
_Vasilisk_, Оставьте свою ICQ или скайп, есть предложение... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2012, 15:17 |
|
|
start [/forum/topic.php?all=1&fid=14&tid=1332733]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 286ms |
total: | 454ms |
0 / 0 |