Age | Commit message (Collapse) | Author |
|
|
|
|
|
* lars/xmerl/bug-in-detect-charset/OTP-15492:
[xmerl] Fix detect charset crash
|
|
The charset detection parsing crash in some cases when
the XML directive is not syntactic correct.
|
|
|
|
|
|
|
|
|
|
|
|
Conflicts:
OTP_VERSION
erts/vsn.mk
|
|
* Fix problem of unexpected endDocument in the old_dom and
simple output backends
|
|
* Fix continuation bug if the xml directive is fragmented
* Replace the ENTITY ets table with a map
|
|
|
|
|
|
returned for strings which have character references
* Adds test with character reference in numeric form
* Updates test for ticket_7430
|
|
|
|
|
|
|
|
* maint:
[xmerl] Remove faulty throws
[xmerl] Fix XML "well-formedness" bug i SAX parser
[xmerl] Correct bug handling multiple documents on a stream
stdlib: Improve pretty-printing of terms with maps
Conflicts:
lib/stdlib/test/io_SUITE.erl
|
|
|
|
Changed the XML Sax parser behaviour so it returns an error
if there are something more in the file after the the
matching document. If one using the xmerl_sax_parser:stream()
a rest is allowed which then can be sent to a new call of
xmerl_sax_parser:stream() to parse next document.
This is done to be compliant with XML conformance tests.
|
|
Change how to interpret end of document to comply with Tim Brays
comment on the standard. This makes it possible to handle more
than one doc on a stream, the standard makes it impossible to
know when the document is ended without waiting for the next
document (and not always even that).
Tim Brays comment about the trailing "Misc" rule:
The fact that you're allowed some trailing junk after the root
element, I decided (but unfortunately too late) is a real design
error in XML. If I'm writing a network client, I'm probably going
to close the link as soon as a I see the root element end-tag, and
not depend on the other end closing it down properly.
Furthermore, if I want to send a succession of XML documents over
a network link, if I find a processing instruction after a root
element, is it a trailer on the previous document, or part of the
prolog of the next?
|
|
|
|
The namespace_conformant option did not work when parsing
documents without explicit XML namespace declaration.
|
|
|
|
With the `default_attrs` option set to `true`, xmerl was replacing the
attributes for each element with the default attributes, discarding any
attributes which were explicitly set.
The new behaviour appends the default attributes, keeping the explicit
attributes intact.
|
|
|
|
A slightly stronger version of Dialyzer discovered that various clauses
in the code of `xmerl` are unreachable. This code was commented out;
There is little reason to have code bloat that simply causes confusion.
An alternative change would be to simply delete this code.
|
|
|
|
|
|
|
|
|
|
Removes the built-in definitions of http://www.w3.org/2001/xml.xsd from
the xmerl_xsd module. xmerl_xsd does load the definitions of the above
schema into its processing table during initialization. This leads to
the inability to process XSD schemas that properly import xml.xsd (as
suggested in xml.xsd itself).
Furthermore, the definitions are loaded from a binary containing the
corresponding terms in Erlang external term format. Since this is not
refactoring safe the intended functionality already broke long ago
(prior to github import) because some of the record definitions did
change in releases older than R13B03.
To sum up, the current code does not do anything useful because the
built-in definitions from the binary can't be used due to incompatible
records. Thus, this fix is not backwards incompatible. The change also
adds two new test cases covering common use-cases when using 'xml:'
types in custom schemas.
|
|
|
|
* richcarl/shut-up-xmerl:
Stop xmerl printing to stdout
OTP-12810
|
|
Applications that use the new erl_anno module are depending on STDLIB 2.5.
Note that CosNotification, Megaco, SNMP, Xmerl, and Parsetools use the
erl_anno module via the Yecc parsers only (the header file in
lib/parsetools/include/yeccpre.hrl calls the erl_anno module).
HiPE does not call the erl_anno module, but uses an exported type.
We have chosen to make HiPE dependent on the erl_anno module.
|
|
|
|
Replace sloppy calls to io:format() in xmerl to use error_logger or debug
macros instead, as appropriate.
|
|
Most dependencies introduced are exactly the dependencies to other
applications found by xref. That is, there might be real dependencies
missing. There might also be pure debug dependencies listed that
probably should be removed. Each application has to be manually
inspected in order to ensure that all real dependencies are listed.
All dependencies introduced are to application versions used in
OTP 17.0. This since the previously used version scheme wasn't
designed for this, and in order to minimize the work of introducing
the dependencies.
|
|
As discussed in issue #240 *all* OTP library applications use the '.*'
wildcard as up and down version. This makes library applications
always up- and downgradeable. Using the wildcard version obsoletes
all maintenance tasks regarding library applications' appup files.
Additionally, it prevents upgrade problems caused by automatically
included application dependencies when using reltool to create
releases. Missing copyright headers are now consistently present.
|
|
|
|
when using xmerl_sax_parser:stream/2 function.
|
|
|
|
|
|
maint
* richcarl/xmerl-avoid-code-server-serialization/OTP-11463:
Avoid serialization on code_server in xmerl:export()
|
|
|
|
The inheritance mechanism in xmerl used to use 'catch apply(M,F,Args)' to
try different modules M until one was found that had a function F/A.
However, when M:F/A does not exist, apply/3 will trap to
error_handler:undefined_function/3, which will call code:ensure_loaded(M),
making a synchronous request to the code server process. If many processes
tried to use xmerl:export() concurrently, they would get serialized waiting
for the code server process. This patch uses erlang:function_exported/3
instead to check if M:F/A exists. If M exists, it should already have been
loaded at that point due to the inheritance checking in the
xmerl:callbacks/1 function.
|
|
Previously, a match would not be found if the namespace prefix in the
XPath query was not contained in the original document. This allows
the `namespace' option to provide a prefix that will be resolved to a
namespace URI.
See Section 2.3 of the XPath 1.0 specification for the behaviour of
'NCName:*' node tests.
|
|
The core use case is a query where the original prefix in the scanned
document is unknown (or varying). For example:
xmerl_xpath:scan("//@ns:name", Doc, [{namespace, [{"ns", Uri}]}])
Previously, this would only return a result if the namespace prefix
was an exact match.
|
|
|