|
31 | 31 | ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_НачалоЭлемента"); |
32 | 32 | ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_НачалоВложенногоЭлемента"); |
33 | 33 | ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлемента"); |
| 34 | + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСОпределениемПространстваИмен"); |
| 35 | + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСПерекрывающимОпределениемПространстваИмен"); |
| 36 | + ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСЛишнимПереопределениемПространстваИмен"); |
34 | 37 | ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_КонецЭлемента"); |
35 | 38 | ВсеТесты.Добавить("ТестДолжен_ЗаписатьТекущий_Текст"); |
36 | 39 |
|
|
358 | 361 |
|
359 | 362 | КонецПроцедуры |
360 | 363 |
|
| 364 | +Процедура ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСОпределениемПространстваИмен() Экспорт |
| 365 | + |
| 366 | + Перем ЧтениеXML, ЗаписьXML; |
| 367 | + |
| 368 | + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); |
| 369 | + |
| 370 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, "<?xml>"); |
| 371 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, "<!DOCTYPE>"); |
| 372 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<xml>"); |
| 373 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); |
| 374 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<data>"); |
| 375 | + ЧтениеXML.Пропустить(); |
| 376 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); |
| 377 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<ins:data>"); |
| 378 | + |
| 379 | + ЧтениеXML.ПервыйАтрибут(); |
| 380 | + ЧтениеXML.СледующийАтрибут(); |
| 381 | + |
| 382 | + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); |
| 383 | + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); |
| 384 | + ПолученныйТекст = ЗаписьXML.Закрыть(); |
| 385 | + юТест.ПроверитьРавенство( |
| 386 | + "<эл xmlns:ins=""inner namespace mapping"" ins:attr=""1"" />", // dotnet автоматом закроет элемент |
| 387 | + ПолученныйТекст, |
| 388 | + "Автоматически добавляется определение пространства имен"); |
| 389 | + |
| 390 | +КонецПроцедуры |
| 391 | + |
| 392 | +Процедура ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСЛишнимПереопределениемПространстваИмен() Экспорт |
| 393 | + |
| 394 | + Перем ЧтениеXML, ЗаписьXML; |
| 395 | + |
| 396 | + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); |
| 397 | + |
| 398 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, "<?xml>"); |
| 399 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, "<!DOCTYPE>"); |
| 400 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<xml>"); |
| 401 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); |
| 402 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<data>"); |
| 403 | + ЧтениеXML.Пропустить(); |
| 404 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); |
| 405 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<ins:data>"); |
| 406 | + |
| 407 | + ЧтениеXML.ПервыйАтрибут(); |
| 408 | + ЧтениеXML.СледующийАтрибут(); |
| 409 | + |
| 410 | + ЗаписьXML.ЗаписатьНачалоЭлемента("корень"); |
| 411 | + ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("ins", "inner namespace mapping"); |
| 412 | + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); |
| 413 | + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); |
| 414 | + ПолученныйТекст = ЗаписьXML.Закрыть(); |
| 415 | + юТест.ПроверитьРавенство( |
| 416 | + "<корень xmlns:ins=""inner namespace mapping""><эл ins:attr=""1"" /></корень>", // dotnet автоматом закроет элементы |
| 417 | + ПолученныйТекст, |
| 418 | + "Определение пространства имен не добавляется"); |
| 419 | + |
| 420 | +КонецПроцедуры |
| 421 | + |
| 422 | +Процедура ТестДолжен_ЗаписатьТекущий_АтрибутВнутриЭлементаСПерекрывающимОпределениемПространстваИмен() Экспорт |
| 423 | + |
| 424 | + // BSLLS:LineLength-off |
| 425 | + Перем ЧтениеXML, ЗаписьXML; |
| 426 | + |
| 427 | + ПодготовитьТестовыеДанныеДляЗаписиТекущего(ЧтениеXML, ЗаписьXML); |
| 428 | + |
| 429 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОбъявлениеXML, "<?xml>"); |
| 430 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ОпределениеТипаДокумента, "<!DOCTYPE>"); |
| 431 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<xml>"); |
| 432 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); |
| 433 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<data>"); |
| 434 | + ЧтениеXML.Пропустить(); |
| 435 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); |
| 436 | + ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.НачалоЭлемента, "<ins:data>"); |
| 437 | + |
| 438 | + ЧтениеXML.ПервыйАтрибут(); |
| 439 | + ЧтениеXML.СледующийАтрибут(); |
| 440 | + |
| 441 | + ЗаписьXML.ЗаписатьНачалоЭлемента("корень"); |
| 442 | + ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("ins2", "inner namespace mapping"); |
| 443 | + ЗаписьXML.ЗаписатьНачалоЭлемента("эл"); |
| 444 | + ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); |
| 445 | + ПолученныйТекст = ЗаписьXML.Закрыть(); |
| 446 | + юТест.ПроверитьРавенство( |
| 447 | + "<корень xmlns:ins2=""inner namespace mapping""><эл xmlns:ins=""inner namespace mapping"" ins:attr=""1"" /></корень>", // dotnet автоматом закроет элементы |
| 448 | + ПолученныйТекст, |
| 449 | + "Определение пространства имен добавляется, так как не совпадают префиксы"); |
| 450 | + // BSLLS:LineLength-on |
| 451 | +КонецПроцедуры |
| 452 | + |
361 | 453 | Процедура ТестДолжен_ЗаписатьТекущий_КонецЭлемента() Экспорт |
362 | 454 |
|
363 | 455 | Перем ЧтениеXML, ЗаписьXML; |
|
378 | 470 |
|
379 | 471 | ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.Текст, "Some Value"); |
380 | 472 | ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.КонецЭлемента, "</data>"); |
381 | | - ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.ПробельныеСимволы); |
382 | | - ПрочитатьИПроверитьТип(ЧтениеXML, ТипУзлаXML.КонецЭлемента, "</xml>"); |
383 | 473 |
|
384 | 474 | ЗаписьXML.ЗаписатьТекущий(ЧтениеXML); |
385 | 475 |
|
|
445 | 535 | |<!DOCTYPE example SYSTEM ""example.dtd""> |
446 | 536 | |<xml xmlns:ns=""ns"" attr=""1"" ns:attr=""value""> |
447 | 537 | | <ns:data inner=""123"" inner2=""456"" inner3=""789"">Some Text</ns:data> |
| 538 | + | <ins:data xmlns:ins=""inner namespace mapping"" ins:attr=""1""></ins:data> |
448 | 539 | |</xml>" |
449 | 540 | ; |
450 | 541 |
|
|
476 | 567 | ЧтениеXML.Прочитать(); |
477 | 568 | юТест.ПроверитьРавенство(ЧтениеXML.ТипУзла, ТипУзла, Сообщение); |
478 | 569 | КонецПроцедуры |
479 | | - |
|
0 commit comments