Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
files as delimiters.
While working on a tool that processes Erlang code and testing it against this repo,
I found out about those little sneaky 0xff. I thought it may be of help to other
people build such tools to remove non-conforming-to-standard characters.
|
|
|
|
* nox/enable-silent-rules/OTP-10726:
Implement ./otp_build configure --enable-silent-rules
|
|
With silent rules, the output of make is less verbose and compilation
warnings are easier to spot. Silent rules are disabled by default and
can be disabled or enabled at will by make V=0 and make V=1.
|
|
|
|
|
|
OTP-10106
OTP-10107
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OTP-9821
|
|
The uniqueness check of attributes failed when the namespace_conformant
flag was set to true.
|
|
|
|
|
|
|
|
Add flag {comments, Flag} to xmerl_scan for filtering of comments.
Default (true) is that xmlComment records are returned from the scanner
and this flag should be set to false if one don't want comments
in the output.
Fix some bugs to get the test cases to run clean.
|
|
Namespace nodes are represented as `#xmlNsNode` records.
Now that the namespace axis is correctly implemented, attributes nodes
corresponding to attributes that declare namespaces are ignored.
See [5.3 Attribute Nodes][xpath-5.3]:
> There are no attribute nodes corresponding to attributes
> that declare namespaces.
[xpath-5.3]: http://www.w3.org/TR/xpath/#attribute-nodes
|
|
|
|
|
|
|
|
This change allows numbers and literals to be used as top-level primary
expressions without failing:
1> xmerl_xpath:string("3", Doc).
#xmlObj{type = number,value = 3}
2> xmerl_xpath:string("'foo'", Doc).
#xmlObj{type = string,value = "foo"}
We still need to allow arithmetic, comparative, boolean and negative
expressions, as in `xmerl_xpath_pred:expr/2`.
|
|
|
|
When `default_attrs` is `true`, any attribute with a default value defined
in the doctype but not in the attribute axis of the currently scanned
element is added to it.
|
|
Functions `xmerl_scan:file/2` and `xmerl_scan:string/2` now accepts a
new option `{document, true}` to produce a whole document as a
`xmlDocument` record instead of just the root element node.
You may wonder why this would be useful, this option is the only way to
get to the top-level comments and processing instructions without
hooking through the customization functions. Those nodes are needed to
implement [Canonical XML][c14n-xml] support.
[c14n-xml]: http://www.w3.org/TR/2008/PR-xml-c14n11-20080129/
"Canonical XML"
|
|
|
|
|
|
|
|
See [Namespaces in XML 1.0 (Third Edition)][1]:
> The prefix xml is by definition bound to the namespace name
> http://www.w3.org/XML/1998/namespace. It MAY, but need not, be
> declared, and MUST NOT be bound to any other namespace name. Other
> prefixes MUST NOT be bound to this namespace name, and it MUST NOT be
> declared as the default namespace.
>
> The prefix xmlns is used only to declare namespace bindings and is by
> definition bound to the namespace name http://www.w3.org/2000/xmlns/.
> It MUST NOT be declared . Other prefixes MUST NOT be bound to this
> namespace name, and it MUST NOT be declared as the default namespace.
> Element names MUST NOT have the prefix xmlns.
>
> In XML documents conforming to this specification, no tag may containe
> two attributes which have identical names, or have qualified names
> with the same local part and with prefixes which have been bound to
> namespace names that are identical.
[1] http://www.w3.org/TR/REC-xml-names/
|