package org.semanticweb.HermiT.datatypes.xmlliteral; import org.apache.axiom.c14n.impl.Canonicalizer20010315ExclWithComments; public class XMLLiteral { protected final String m_xml; public XMLLiteral(String xml) { m_xml=xml; } public String getXML() { return m_xml; } public boolean equals(Object that) { if (this==that) return true; if (!(that instanceof XMLLiteral)) return false; return ((XMLLiteral)that).m_xml.equals(m_xml); } public int hashCode() { return m_xml.hashCode(); } public String toString() { return m_xml; } public static XMLLiteral parse(String lexicalForm) throws Exception { String enclosedXML="<arbitraryTag>"+lexicalForm+"</arbitraryTag>"; Canonicalizer20010315ExclWithComments canonicalizer=new Canonicalizer20010315ExclWithComments(); byte result[]=canonicalizer.engineCanonicalize(enclosedXML.getBytes("UTF-8")); String canonicalXML=new String(result,"UTF-8"); assert canonicalXML.startsWith("<arbitraryTag>"); assert canonicalXML.endsWith("</arbitraryTag>"); canonicalXML=canonicalXML.substring("<arbitraryTag>".length(),canonicalXML.length()-"</arbitraryTag>".length()); return new XMLLiteral(canonicalXML); } }