Hi,

I'm working on http://track.sipfoundry.org/browse/XX-7162 and I need some advice/help regarding the transition from DTD to schema. While most of the xml files are easy to change, there is one problem with the tapestry.xml file. Basically, this xml file is validated by DTD, but the problem is that it contains entities (as in DTD's <!ENTITY ... >). From what I read and understood, XML schema doesn't accept entities and I didn't find yet a suitable way to replace them. These entities are used for text replacing, regarding some composed regular expressions and they are defined as it follows:
|<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
   "http://www.springframework.org/dtd/spring-beans.dtd";
[
 <!-- Regexp fragments that are not atoms should be in (...), so that
      modifiers ('?', '{...}', etc.) can be applied to them directly. -->
 <!-- see: http://www.ietf.org/rfc/rfc3261.txt -->
<!-- this is actually concatenation of unreserved and user-unreserved sets -->
 <!-- To be used only inside [...], and only at the beginning, as it starts
      with '-'. -->
 <!ENTITY SIP_USER_UNRESERVED "-_.!~*'\(\)&amp;=+$,;?/">
 <!-- To be used only inside [...]. -->
 <!ENTITY SIP_USER_CHARS "&SIP_USER_UNRESERVED;a-zA-Z0-9">
 <!-- &#37; is percent -->
 <!ENTITY SIP_USER_ESCAPED "(&#37;[0-9a-fA-F]{2})">
 <!ENTITY SIP_USER_REGEX "(\[\])">
<!-- One octet of an IP address. (Allows leading zeros, up to 3 digits.) -->
 <!ENTITY IP_ADDR_OCTET "(25[0-5]|2[0-4][0-9]|[01]?[0-9]{1,2})">
<!ENTITY IP_ADDR "(&IP_ADDR_OCTET;\.&IP_ADDR_OCTET;\.&IP_ADDR_OCTET;\.&IP_ADDR_OCTET;)">
 <!-- Components of DNS names, per RFC 1034 section 3.5. -->
 <!ENTITY DNS_LET_DIG "[A-Za-z0-9]">
 <!ENTITY DNS_LET_DIG_HYP "[-A-Za-z0-9]">
 <!ENTITY DNS_LABEL "(&DNS_LET_DIG;(&DNS_LET_DIG_HYP;*&DNS_LET_DIG;)?)">
 <!-- DNS domain names have at least 2 labels, of which the last contains
only letters and has at least 2 chars. 'localhost' is also allowed.. -->
 <!ENTITY DNS_DOMAIN_NAME "((&DNS_LABEL;\.){1,}[A-Za-z]{2,}|localhost)">
]>|

I would be really grateful if someone could help me with this.
The way I see it now. there are two ways to get past this:
- get rid of the entities and directly replace the references with the full text in the xml file (that would result in having some pretty nasty regular expressions in xml). - leave the tapestry.xml as it is for now, validating it by DTD, and maybe someone could come up with a proper change for it in the future.

What do you think? Am I missing something? Is there another way to do this?

Thanks,
Bogdan
_______________________________________________
sipx-dev mailing list [email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev
sipXecs IP PBX -- http://www.sipfoundry.org/

Reply via email to