compatibility-matrix.sepolicy.sepolicy-version format

should be 25.0 or 26.0-3; also there can be multiple
sepolicy-version entries. Change the code to reflect these.

Test: libvintf_test
Bug: 36456394 VINTF: add sepolicy version
Bug: 36737087 We need a way to identify which "platform version"
Change-Id: Iaf660c6326fb42a21b16e8b8129005053a28f01b
diff --git a/parse_xml.cpp b/parse_xml.cpp
index 19ef771..207d4ed 100644
--- a/parse_xml.cpp
+++ b/parse_xml.cpp
@@ -543,17 +543,17 @@
 const ManifestHalConverter manifestHalConverter{};
 
 const XmlTextConverter<KernelSepolicyVersion> kernelSepolicyVersionConverter{"kernel-sepolicy-version"};
-const XmlTextConverter<SepolicyVersion> sepolicyVersionConverter{"sepolicy-version"};
+const XmlTextConverter<VersionRange> sepolicyVersionConverter{"sepolicy-version"};
 
 struct SepolicyConverter : public XmlNodeConverter<Sepolicy> {
     std::string elementName() const override { return "sepolicy"; }
     void mutateNode(const Sepolicy &object, NodeType *root, DocType *d) const override {
         appendChild(root, kernelSepolicyVersionConverter(object.kernelSepolicyVersion(), d));
-        appendChild(root, sepolicyVersionConverter(object.sepolicyVersion(), d));
+        appendChildren(root, sepolicyVersionConverter, object.sepolicyVersions(), d);
     }
     bool buildObject(Sepolicy *object, NodeType *root) const override {
         if (!parseChild(root, kernelSepolicyVersionConverter, &object->mKernelSepolicyVersion) ||
-            !parseChild(root, sepolicyVersionConverter, &object->mSepolicyVersion)) {
+            !parseChildren(root, sepolicyVersionConverter, &object->mSepolicyVersionRanges)) {
             return false;
         }
         return true;