public void copyValues(Element dst) {
   dst.id = id == null ? null : id.copy();
   if (extension != null) {
     dst.extension = new ArrayList<Extension>();
     for (Extension i : extension) dst.extension.add(i.copy());
   }
   ;
 }
 public static boolean findBooleanExtension(Element c, String uri) {
   Extension ex = c.getExtension(uri);
   if (ex == null) return false;
   if (!(ex.getValue() instanceof Boolean)) return false;
   return true;
 }
 public static String readBooleanExtension(Element c, String uri) {
   Extension ex = c.getExtension(uri);
   if (ex == null) return null;
   if (!(ex.getValue() instanceof Boolean)) return null;
   return java.lang.Boolean.toString(((Boolean) ex.getValue()).getValue());
 }
 public static boolean findStringExtension(Element c, String uri) {
   Extension ex = c.getExtension(uri);
   if (ex == null) return false;
   if (!(ex.getValue() instanceof String_)) return false;
   return !Utilities.noString(((String_) ex.getValue()).getValue());
 }
 public static String readStringExtension(Element c, String uri) {
   Extension ex = c.getExtension(uri);
   if (ex == null) return null;
   if (!(ex.getValue() instanceof String_)) return null;
   return ((String_) ex.getValue()).getValue();
 }
 public static void markDeprecated(Element nc) throws Exception {
   nc.getExtensions().add(Factory.newExtension(EXT_DEPRECATED, Factory.newBoolean(true), true));
 }
 protected void composeElementAttributes(Element element) throws Exception {
   if (element.getXmlId() != null) xml.attribute("id", element.getXmlId());
 }