summaryrefslogtreecommitdiff
path: root/packages/libxml
diff options
context:
space:
mode:
authorivost <ivost@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-03-21 11:06:07 +0000
committerivost <ivost@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-03-21 11:06:07 +0000
commitf0d31a663a8d8273cf2cc91b1760de26155c8cbf (patch)
treeb33a5f62dc27c044124008ae08af857d33337d75 /packages/libxml
parent01c181e6964064395da4f1b6276f1a3eac147416 (diff)
downloadfpc-f0d31a663a8d8273cf2cc91b1760de26155c8cbf.tar.gz
* added namespace testing function
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@12936 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/libxml')
-rw-r--r--packages/libxml/src/xmlxsd.pas26
1 files changed, 20 insertions, 6 deletions
diff --git a/packages/libxml/src/xmlxsd.pas b/packages/libxml/src/xmlxsd.pas
index aef0eb3281..1d15a1b383 100644
--- a/packages/libxml/src/xmlxsd.pas
+++ b/packages/libxml/src/xmlxsd.pas
@@ -174,6 +174,7 @@ const
NS_EXCLUDE : xmlCharPtr = pointer(-1);
{ Node query functions }
+function xsdTestNodeNs(node: xmlNodePtr; nameSpace: xmlCharPtr): Boolean;
function xsdTestNode(node: xmlNodePtr; name, nameSpace: xmlCharPtr): Boolean;
function xsdTryGetChild(node: xmlNodePtr; name, nameSpace: xmlCharPtr; Index: Integer = 0): xmlNodePtr;
@@ -272,6 +273,7 @@ procedure xsdNextUnsignedLong(var node: xmlNodePtr; name, nameSpace: xmlCharPtr;
procedure xsdNextEnum(var node: xmlNodePtr; name, nameSpace: xmlCharPtr; enum: array of String; out Value: Integer);
{ Property query functions }
+function xsdTestPropNs(attr: xmlAttrPtr; nameSpace: xmlCharPtr): Boolean;
function xsdTestProp(attr: xmlAttrPtr; name, nameSpace: xmlCharPtr): Boolean;
function xsdTryGetProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr;
@@ -1405,11 +1407,17 @@ begin
Result := xmlNewNsProp(node, ns, name, BAD_CAST(Tmp));
end;
-function xsdTestNode(node: xmlNodePtr; name, nameSpace: xmlCharPtr): Boolean;
+function xsdTestNodeNs(node: xmlNodePtr; nameSpace: xmlCharPtr): Boolean;
begin
- Result := (node <> nil) and (xmlStrEqual(name, node^.name) <> 0) and ((nameSpace = NS_IGNORE) or
+ Result :=
+ (nameSpace = NS_IGNORE) or
((nameSpace = NS_EXCLUDE) and (node^.ns = nil)) or
- ((nameSpace <> NS_EXCLUDE) and (nameSpace <> NS_IGNORE) and (node^.ns <> nil) and (xmlStrEqual(nameSpace, node^.ns^.href) <> 0)));
+ ((nameSpace <> NS_EXCLUDE) and (nameSpace <> NS_IGNORE) and (node^.ns <> nil) and (xmlStrEqual(nameSpace, node^.ns^.href) <> 0));
+end;
+
+function xsdTestNode(node: xmlNodePtr; name, nameSpace: xmlCharPtr): Boolean;
+begin
+ Result := (node <> nil) and (xmlStrEqual(name, node^.name) <> 0) and xsdTestNodeNs(node, nameSpace);
end;
function xsdTryGetChild(node: xmlNodePtr; name, nameSpace: xmlCharPtr; Index: integer): xmlNodePtr;
@@ -1890,11 +1898,17 @@ begin
xsdParseEnum(xsdNextChars(node, name, nameSpace), enum, Value);
end;
-function xsdTestProp(attr: xmlAttrPtr; name, nameSpace: xmlCharPtr): Boolean;
+function xsdTestPropNs(attr: xmlAttrPtr; nameSpace: xmlCharPtr): Boolean;
begin
- Result := (attr <> nil) and (xmlStrEqual(name, attr^.name) <> 0) and ((nameSpace = NS_IGNORE) or
+ Result :=
+ (nameSpace = NS_IGNORE) or
((nameSpace = NS_EXCLUDE) and (attr^.ns = nil)) or
- ((nameSpace <> NS_EXCLUDE) and (nameSpace <> NS_IGNORE) and (attr^.ns <> nil) and (xmlStrEqual(nameSpace, attr^.ns^.href) <> 0)));
+ ((nameSpace <> NS_EXCLUDE) and (nameSpace <> NS_IGNORE) and (attr^.ns <> nil) and (xmlStrEqual(nameSpace, attr^.ns^.href) <> 0))
+end;
+
+function xsdTestProp(attr: xmlAttrPtr; name, nameSpace: xmlCharPtr): Boolean;
+begin
+ Result := (attr <> nil) and (xmlStrEqual(name, attr^.name) <> 0) and xsdTestPropNs(attr, nameSpace);
end;
function xsdTryGetProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr;