Browse Source

* added namespace testing function

git-svn-id: trunk@12936 -
ivost 16 years ago
parent
commit
e9928658b5
1 changed files with 20 additions and 6 deletions
  1. 20 6
      packages/libxml/src/xmlxsd.pas

+ 20 - 6
packages/libxml/src/xmlxsd.pas

@@ -174,6 +174,7 @@ const
   NS_EXCLUDE : xmlCharPtr = pointer(-1);
   NS_EXCLUDE : xmlCharPtr = pointer(-1);
 
 
 { Node query functions }
 { Node query functions }
+function xsdTestNodeNs(node: xmlNodePtr; nameSpace: xmlCharPtr): Boolean;
 function xsdTestNode(node: xmlNodePtr; name, nameSpace: xmlCharPtr): Boolean;
 function xsdTestNode(node: xmlNodePtr; name, nameSpace: xmlCharPtr): Boolean;
 
 
 function xsdTryGetChild(node: xmlNodePtr; name, nameSpace: xmlCharPtr; Index: Integer = 0): xmlNodePtr;
 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);
 procedure xsdNextEnum(var node: xmlNodePtr; name, nameSpace: xmlCharPtr; enum: array of String; out Value: Integer);
 
 
 { Property query functions }
 { Property query functions }
+function xsdTestPropNs(attr: xmlAttrPtr; nameSpace: xmlCharPtr): Boolean;
 function xsdTestProp(attr: xmlAttrPtr; name, nameSpace: xmlCharPtr): Boolean;
 function xsdTestProp(attr: xmlAttrPtr; name, nameSpace: xmlCharPtr): Boolean;
 
 
 function xsdTryGetProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr;
 function xsdTryGetProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr;
@@ -1405,11 +1407,17 @@ begin
   Result := xmlNewNsProp(node, ns, name, BAD_CAST(Tmp));
   Result := xmlNewNsProp(node, ns, name, BAD_CAST(Tmp));
 end;
 end;
 
 
-function xsdTestNode(node: xmlNodePtr; name, nameSpace: xmlCharPtr): Boolean;
+function xsdTestNodeNs(node: xmlNodePtr; nameSpace: xmlCharPtr): Boolean;
 begin
 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 (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;
 end;
 
 
 function xsdTryGetChild(node: xmlNodePtr; name, nameSpace: xmlCharPtr; Index: integer): xmlNodePtr;
 function xsdTryGetChild(node: xmlNodePtr; name, nameSpace: xmlCharPtr; Index: integer): xmlNodePtr;
@@ -1890,11 +1898,17 @@ begin
   xsdParseEnum(xsdNextChars(node, name, nameSpace), enum, Value);
   xsdParseEnum(xsdNextChars(node, name, nameSpace), enum, Value);
 end;
 end;
 
 
-function xsdTestProp(attr: xmlAttrPtr; name, nameSpace: xmlCharPtr): Boolean;
+function xsdTestPropNs(attr: xmlAttrPtr; nameSpace: xmlCharPtr): Boolean;
 begin
 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 (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;
 end;
 
 
 function xsdTryGetProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr;
 function xsdTryGetProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr;