Перейти к содержимому

Invalid xml content что это

  • автор:

Invalid xml content что это

The service you’ve requested couldn’t be identified

No matches have been found between requested website and protected IP address

If you are trying to visit this site, please try again later.

If you are a target website owner please make sure that:
— DNS A record points to the protected IP address for the requested website
— The DDoS protection and optimization service is active for the requested website

Protection and Acceleration by DDoS-Guard

Почему тип столбца xml не проверяет входное значение?

При этом спокойно вставляю в таблицу произвольную строку и никакой проверки не происходит, данные записываются в таблицу.

  • Вопрос задан 31 июл. 2023
  • 76 просмотров

Комментировать
Решения вопроса 1
PostgreSQL DBA

melkij=> select 'hello'::xml; xml ------- hello (1 строка) melkij=> select 'hello'::xml; ERROR: invalid XML content СТРОКА 1: select 'hello'::xml; ^ ПОДРОБНОСТИ: line 1: Premature end of data in tag foo line 1 hello ^ line 1: chunk is not well balanced hello

Если вам нужно проверить, что это не просто валидный xml, но целый документ — добавьте check constraint с проверкой на columnname is document

Ответ написан 31 июл. 2023
Нравится 1 2 комментария
Товарищ спрашивал не за приведение типа, а именно за поле с указанным типом и autocheck

и в чём разница, если это одна и та же input функция? Можно переписать в create table с insert’ами, букв куда больше, а результат не поменяется.

Ответы на вопрос 1
Сетевой и системный админ, SQL-программист.

При этом по факту я спокойно вставляю в таблицу произвольную строку и никакой проверки не происходит, данные спокойно записываются в таблицу.

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

Попробуйте вставить нечто, являющееся документом/фрагментом XML, но с ошибкой в разметке — тут же схлопочете ошибку.
DEMO

Средство синтаксического анализа XML: в текстовом содержимом найден недопустимый символ

Эта статья поможет устранить ошибки при синтаксическом анализе языка XML, содержащего специальные символы, с помощью средства синтаксического анализа XML (MSXML) Майкрософт.

Исходная версия продукта: платформа .NET Framework
Исходный номер базы знаний: 238833

Признак

При синтаксическом анализе XML, содержащего специальные символы, с помощью средства синтаксического анализа Microsoft XML (MSXML) средство синтаксического анализа может сообщить следующее сообщение об ошибке в строке и позиции первого специального символа:

В текстовом содержимом найден недопустимый символ.

Причина

XML-документ не помечается правильной схемой кодирования символов.

Решение

  • Укажите правильную схему кодирования в инструкции по обработке XML.
  • Повторно закодируйте XML-данные как правильные UTF-8.

Статус

Такое поведение является особенностью данного продукта.

Дополнительная информация

Специальный символ относится к любому символу за пределами стандартного набора символов Американского стандартного кода для обмена информацией (ASCII) 0x00 — 0x7F, например латинские символы с акцентами, умлауты или другие диакритические знаки. Схема кодирования XML-документов по умолчанию — UTF-8, которая кодирует символы ASCII со значением 0x80 или выше, иначе, чем в других стандартных схемах кодирования.

Чаще всего эта проблема возникает при работе с данными, использующими простую схему кодирования iso-8859-1. В этом случае самым быстрым решением обычно является первое из перечисленных выше в разделе Разрешение . Например, используйте следующее объявление XML:

  . XML data. 

Вместо этого можно закодировать каждый из этих символов с помощью ссылки на числовые сущности. Например, можно взять специальный символ á, использовать á (десятичная версия) или á (шестнадцатеричная версия).

Обратная связь

Были ли сведения на этой странице полезными?

Invalid xml content что это

> вылетает ошибка ASN1, неправильный Base64

Это похоже на ошибки связанные с тем, что строки в JS/VS в Unicode, а не в байтах. Надо тщательно следить за преобразованиями.

13.09.2004 16:52:56 timda
13.09.2004 17:54:05 Serge3leo
13.09.2004 18:21:44 timda

var XML = new ActiveXObject(«Msxml2.DOMDocument.4.0»);
XML.async = false;
XML.loadXML(strXML);

var signedData = new ActiveXObject(«CAPICOM.SignedData»)
var signer = new ActiveXObject(«CAPICOM.Signer»);
signer.Certificate = Certificate; // здесь выбран сертификат Certificate = new ActiveXObject(«CAPICOM.Certificate»);

signedData.Content = XML.xml;
var signature = signedData.Sign(signer, true, 0);

формируем strURL
xmlhttp.Open(«GET», strURL, true);
отправляем

тама вижу ошибки на дот нет 😉

где могут быть ошибки ?

14.09.2004 13:17:32 timda

if (!xmldsig.signature)
alert(«Invalid signature template\n»);
return false;
>

var _key = cert.PrivateKey.ContainerName;
document.all.a.value = _key;
var oKey = xmldsig.createKeyFromCSP(1, «», _key, 0);

30.09.2004 12:02:07 timda
30.09.2004 17:24:26 xyz

JScript Source: sign.js
var xmldoc, xmldsig, infile;
var szResult = «»;

NOKEYINFO = 0;
KEYVALUE = 1;
CERTIFICATES = 2;
PURGE = 4;

DSIGNS = «xmlns:ds=’http://www.w3.org/2000/09/xmldsig#’»;
PROV_RSA_FULL = 1;
// Change this key container name to your own if necessary.
RSA_KEY = «MyRSAFullKeys»;

csp = PROV_RSA_FULL;
key = RSA_KEY;
infile = «signature_template.sign.rsa.xml»;

alert(«Sign with fwWriteKeyInfo = NOKEYINFO:»);
SignXML(NOKEYINFO);

alert(«Sign with fwWriteKeyInfo = KEYVALUE:»);
SignXML(KEYVALUE|PURGE);

alert(«Sign with fwWriteKeyInfo = CERTIFICATES:»);
SignXML(CERTIFICATES);

alert(«Sign with fwWriteKeyInfo = CERTIFICATES|PURGE:»);
SignXML(CERTIFICATES|PURGE);

alert(«Sign with fwWriteKeyInfo = PURGE:»);
SignXML(PURGE);
>

///////// Helper functions. /////////
function alert(str)

///////// Set the signature for signing. ////////
function InitXML()
try xmldoc = new ActiveXObject(«Msxml2.DOMDOcument.5.0»);
xmldsig= new ActiveXObject(«Msxml2.MXDigitalSignature.5.0»);
>
catch (e) alert(«Installation of mxsml5 is required to run this app.\n»);
return false;
>

xmldoc.async = false;
xmldoc.preserveWhiteSpace = true;
xmldoc.validateOnParse = false;
xmldoc.resolveExternals = false;
return true;
>

function LoadXML(file)
if (xmldoc == null) alert(«must instantiate xml dom\n»);
return false;
>

if (!xmldoc.load(file)) alert(«Can’t load «+ file + «\n»);
return false;
>
xmldoc.setProperty(«SelectionNamespaces», DSIGNS);
xmldsig.signature = xmldoc.selectSingleNode(«.//ds:Signature»);
return true;
>

function SignXML(fwWriteKeyInfo)
if (!xmldsig.signature)
alert(«Invalid signature template\n»);
return false;
>

var oKey = xmldsig.createKeyFromCSP(csp, «», key, 0);
if (!oKey)
alert(«Invalid key.\n»);
return false;
>

var oSignedKey = xmldsig.sign(oKey,fwWriteKeyInfo);
if (!oSignedKey)
alert(«sign failed.\n»);
return false;
>

alert(«The specified data was signed successfully.\n»+
«Resultant signature:\n»+
xmldoc.xml + «\n»);
return true;
>
Try It!

30.09.2004 17:24:39 xyz

JScript Source: sign.js
var xmldoc, xmldsig, infile;
var szResult = «»;

NOKEYINFO = 0;
KEYVALUE = 1;
CERTIFICATES = 2;
PURGE = 4;

DSIGNS = «xmlns:ds=’http://www.w3.org/2000/09/xmldsig#’»;
PROV_RSA_FULL = 1;
// Change this key container name to your own if necessary.
RSA_KEY = «MyRSAFullKeys»;

csp = PROV_RSA_FULL;
key = RSA_KEY;
infile = «signature_template.sign.rsa.xml»;

alert(«Sign with fwWriteKeyInfo = NOKEYINFO:»);
SignXML(NOKEYINFO);

alert(«Sign with fwWriteKeyInfo = KEYVALUE:»);
SignXML(KEYVALUE|PURGE);

alert(«Sign with fwWriteKeyInfo = CERTIFICATES:»);
SignXML(CERTIFICATES);

alert(«Sign with fwWriteKeyInfo = CERTIFICATES|PURGE:»);
SignXML(CERTIFICATES|PURGE);

alert(«Sign with fwWriteKeyInfo = PURGE:»);
SignXML(PURGE);
>

///////// Helper functions. /////////
function alert(str)

///////// Set the signature for signing. ////////
function InitXML()
try xmldoc = new ActiveXObject(«Msxml2.DOMDOcument.5.0»);
xmldsig= new ActiveXObject(«Msxml2.MXDigitalSignature.5.0»);
>
catch (e) alert(«Installation of mxsml5 is required to run this app.\n»);
return false;
>

xmldoc.async = false;
xmldoc.preserveWhiteSpace = true;
xmldoc.validateOnParse = false;
xmldoc.resolveExternals = false;
return true;
>

function LoadXML(file)
if (xmldoc == null) alert(«must instantiate xml dom\n»);
return false;
>

if (!xmldoc.load(file)) alert(«Can’t load «+ file + «\n»);
return false;
>
xmldoc.setProperty(«SelectionNamespaces», DSIGNS);
xmldsig.signature = xmldoc.selectSingleNode(«.//ds:Signature»);
return true;
>

function SignXML(fwWriteKeyInfo)
if (!xmldsig.signature)
alert(«Invalid signature template\n»);
return false;
>

var oKey = xmldsig.createKeyFromCSP(csp, «», key, 0);
if (!oKey)
alert(«Invalid key.\n»);
return false;
>

var oSignedKey = xmldsig.sign(oKey,fwWriteKeyInfo);
if (!oSignedKey)
alert(«sign failed.\n»);
return false;
>

alert(«The specified data was signed successfully.\n»+
«Resultant signature:\n»+
xmldoc.xml + «\n»);
return true;
>
Try It!

30.09.2004 17:24:43 xyz

JScript Source: sign.js
var xmldoc, xmldsig, infile;
var szResult = «»;

NOKEYINFO = 0;
KEYVALUE = 1;
CERTIFICATES = 2;
PURGE = 4;

DSIGNS = «xmlns:ds=’http://www.w3.org/2000/09/xmldsig#’»;
PROV_RSA_FULL = 1;
// Change this key container name to your own if necessary.
RSA_KEY = «MyRSAFullKeys»;

csp = PROV_RSA_FULL;
key = RSA_KEY;
infile = «signature_template.sign.rsa.xml»;

alert(«Sign with fwWriteKeyInfo = NOKEYINFO:»);
SignXML(NOKEYINFO);

alert(«Sign with fwWriteKeyInfo = KEYVALUE:»);
SignXML(KEYVALUE|PURGE);

alert(«Sign with fwWriteKeyInfo = CERTIFICATES:»);
SignXML(CERTIFICATES);

alert(«Sign with fwWriteKeyInfo = CERTIFICATES|PURGE:»);
SignXML(CERTIFICATES|PURGE);

alert(«Sign with fwWriteKeyInfo = PURGE:»);
SignXML(PURGE);
>

///////// Helper functions. /////////
function alert(str)

///////// Set the signature for signing. ////////
function InitXML()
try xmldoc = new ActiveXObject(«Msxml2.DOMDOcument.5.0»);
xmldsig= new ActiveXObject(«Msxml2.MXDigitalSignature.5.0»);
>
catch (e) alert(«Installation of mxsml5 is required to run this app.\n»);
return false;
>

xmldoc.async = false;
xmldoc.preserveWhiteSpace = true;
xmldoc.validateOnParse = false;
xmldoc.resolveExternals = false;
return true;
>

function LoadXML(file)
if (xmldoc == null) alert(«must instantiate xml dom\n»);
return false;
>

if (!xmldoc.load(file)) alert(«Can’t load «+ file + «\n»);
return false;
>
xmldoc.setProperty(«SelectionNamespaces», DSIGNS);
xmldsig.signature = xmldoc.selectSingleNode(«.//ds:Signature»);
return true;
>

function SignXML(fwWriteKeyInfo)
if (!xmldsig.signature)
alert(«Invalid signature template\n»);
return false;
>

var oKey = xmldsig.createKeyFromCSP(csp, «», key, 0);
if (!oKey)
alert(«Invalid key.\n»);
return false;
>

var oSignedKey = xmldsig.sign(oKey,fwWriteKeyInfo);
if (!oSignedKey)
alert(«sign failed.\n»);
return false;
>

alert(«The specified data was signed successfully.\n»+
«Resultant signature:\n»+
xmldoc.xml + «\n»);
return true;
>
Try It!

30.09.2004 17:24:50 xyz

JScript Source: sign.js
var xmldoc, xmldsig, infile;
var szResult = «»;

NOKEYINFO = 0;
KEYVALUE = 1;
CERTIFICATES = 2;
PURGE = 4;

DSIGNS = «xmlns:ds=’http://www.w3.org/2000/09/xmldsig#’»;
PROV_RSA_FULL = 1;
// Change this key container name to your own if necessary.
RSA_KEY = «MyRSAFullKeys»;

csp = PROV_RSA_FULL;
key = RSA_KEY;
infile = «signature_template.sign.rsa.xml»;

alert(«Sign with fwWriteKeyInfo = NOKEYINFO:»);
SignXML(NOKEYINFO);

alert(«Sign with fwWriteKeyInfo = KEYVALUE:»);
SignXML(KEYVALUE|PURGE);

alert(«Sign with fwWriteKeyInfo = CERTIFICATES:»);
SignXML(CERTIFICATES);

alert(«Sign with fwWriteKeyInfo = CERTIFICATES|PURGE:»);
SignXML(CERTIFICATES|PURGE);

alert(«Sign with fwWriteKeyInfo = PURGE:»);
SignXML(PURGE);
>

///////// Helper functions. /////////
function alert(str)

///////// Set the signature for signing. ////////
function InitXML()
try xmldoc = new ActiveXObject(«Msxml2.DOMDOcument.5.0»);
xmldsig= new ActiveXObject(«Msxml2.MXDigitalSignature.5.0»);
>
catch (e) alert(«Installation of mxsml5 is required to run this app.\n»);
return false;
>

xmldoc.async = false;
xmldoc.preserveWhiteSpace = true;
xmldoc.validateOnParse = false;
xmldoc.resolveExternals = false;
return true;
>

function LoadXML(file)
if (xmldoc == null) alert(«must instantiate xml dom\n»);
return false;
>

if (!xmldoc.load(file)) alert(«Can’t load «+ file + «\n»);
return false;
>
xmldoc.setProperty(«SelectionNamespaces», DSIGNS);
xmldsig.signature = xmldoc.selectSingleNode(«.//ds:Signature»);
return true;
>

function SignXML(fwWriteKeyInfo)
if (!xmldsig.signature)
alert(«Invalid signature template\n»);
return false;
>

var oKey = xmldsig.createKeyFromCSP(csp, «», key, 0);
if (!oKey)
alert(«Invalid key.\n»);
return false;
>

var oSignedKey = xmldsig.sign(oKey,fwWriteKeyInfo);
if (!oSignedKey)
alert(«sign failed.\n»);
return false;
>

alert(«The specified data was signed successfully.\n»+
«Resultant signature:\n»+
xmldoc.xml + «\n»);
return true;
>
Try It!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *